读《SQL Server 2005高级管理》的一些摘要... 连载5
在T-SQL中监视进程
DBA更愿意使用T-SQL的原因是可以比“活动监视器”更加灵活地获得信息。
1. sp_who和sp_who2
存储过程sp_who也返回当前连接数据库实例,与“活动监视器”非常类似。然而,用户可能发现自己更愿意使用未公开说明的sp_who2存储过程,因为它提供了有关每个进程的更详细信息。不管使用哪个存储过程,它们都将接受相同输入参数。
要查看当前连接服务器的所有连接,可不带任何参数运行sp_who2。这将与“活动监视器”显示相同类型信息。还可以给它传递参数active,从而只查看服务器上的活动链接。
sp_who2 ‘active’
最后,可按如下所示传递进程ID作为参数,以查看有关特定进程的详细信息,
sp_who2 55
2. sys.dm_exec_connections
动态管理视图sys.dm_exec_connections提供了更多信息,帮助排除SQL Server数据库引擎故障。这个DMV为SQL Server中的每个会话返回一行。因为它是DMV,所以它以表格形式显示,并让用户能够对该视图编写复杂的查询,以筛选掉不关心的内容,如下面的询查所示,它只显示执行写入操作的用户连接。
Select* from
Sys.dm_exec_sessions WHWRE is_user_process = 1
AND writes >0
除前面介绍的查看进程方法显示的信息外,在这个DMV中还可以看到用户在打开连接后检索的行数以及读取,写入和逻辑读取的次数等。在这个视图中还可以看到每个连接的设置以及最近一次发生的错误(如果存在的话)。
3. DBCC INPUTBUFFER
DBCC INPUTBUFFER是一个很有用的DBCC命令,让用户能够查看各个进程ID在运行哪些SQL命令。该命令只接受一个输入参数,即要对其进行诊断的连接的进程ID,如下面的查询所示。
DBCC INPUTBUFFER(53)
该命令返回的重要的一列是在EventInfo列中运行的事件SQL命令。如果运行一个非常大的批处理,则在查询窗口中默认只能看到前256个字符。
4. Sys.dm_exec_sql_text
5. 有些时候可能需要表格格式的DBCC INPUTBUFFER结果。可使用动态管理函数Sys.dm_exec_sql_text来获得特定查询的文本。它可以与Sys.dm_exec_query_stats动态管理视图结合使用,已获得所有数据库中性能最差的查询。
Sys.dm_exec_q
相关文档:
如果你经常遇到下面的问题,你就要考虑使用SQL Server的模板来写规范的SQL语句了:
SQL初学者。
经常忘记常用的DML或是DDL SQL 语句。
在多人开发维护的SQL中,每个人都有自己的SQL习惯,没有一套统一的规范。
在SQL Server Management Studio中,已经给大家提供了很多常用的现成SQL规范模板。
SQL Server Management ......
sql注入防止的方式:
1.最根本的办法就是使用预编译的方式进行数据库操作。即时使用?的方式。
2.使用过滤类。
防止跨站脚本的方式:
1.在数据录入阶段进行过滤,但是这种方式会是丢失一些数据。
2. 在数据展示阶段。使用标签包含,innerhtml 的方式。 ......
假如你写过很多程序,你可能偶尔会碰到要确定字符或字符窜串否包含在一段文字中,在这篇文章中,我将讨论使用CHARINDEX和PATINDEX函数来搜索文字列和字符串。我将告诉你这两个函数是如何运转的,解释他们的区别。同时提供一些例子,通过这些例子,你可以可以考虑使用这两个函数来解决很多不同的字符搜索的问题。
&nb ......
1 :普通SQL语句可以用Exec执行
例: Select * from tableName
Exec('select * from tableName')
& ......