易截截图软件、单文件、免安装、纯绿色、仅160KB

简要介绍SQL Server 2008新的事件处理系统

SQL Server Extended Events(下面简称XEvent)是SQL Server 2008里新加的事件处理系统,用来取代SQL Server原
先的SQL Trace的跟踪机制。事件处理系统对一个复杂服务器系统的排错,调试是极为关键的。和SQL Server原来的事
件处理系统相比较,XEvent具有下列的优势:
  消耗更少的系统资源,更适用于在产品服务器上的排错和调试。并且每收集一个系统事件所消耗的资源都是可预测
的。
  不仅仅能收集事件数据,还能收集在这事件触发点的系统动态运行信息,例如内存,T-SQL Stack等等。
  可配置性,能够根据系统负载的需求配置所需收集的事件信息。
  下面是一个简单的例子介绍如何使用XEvent来做系统排错工作。
  当前台应用性能下降的时候,数据库管理员经常需要确定是否有资源锁的申请冲突,既所谓我们说的blocking。在
SQL Server 2008里面,你可以查询系统视图sys.dm_exec_requests,并且能发现有一些进程正在等待资源锁,比如像
下面这个结果:
  我们可以看到有个Session 54的状态是Suspended,意味着一个查询的操作被blocked, 但是我们看不到是哪一个
Query占用了资源,以及查询计划和T-SQL Stack等等,如果我有下面的XEvent Session我们就能够解决这个问题。(在
下面的例子中我们假设XEvent Session在Block发生之前已经启动好了)
  1、在查询编辑器执行下面的命令,这会创建一个XEvent Session来捕捉lock_acquired和lock_released,同时我
们还会抓下sql_text,tsql_stack和plan_handle等信息。
  -- Perform cleanup.
  IF EXISTS(SELECT * from sys.server_event_sessions WHERE name='FindBlockers')
  DROP EVENT SESSION FindBlockers ON SERVER
  GO
  -- 我们这边假设是数据库”DAA”里出了block,所以我们会使用一个predicate去过滤掉其他数据库的Block问题
  --
  DECLARE @dbid int
  SELECT @dbid = db_id('DAA')
  IF @dbid IS NULL
  BEGIN
  RAISERROR('DAA is not installed. Install DAA before proceeding', 17, 1)
  RETURN
  END
  DECLARE @sql nvarchar(1024)
  SET @sql = '
  CREATE EVENT SESSION FindBlockers ON SERVER
  --这里我们加了lock_acquired的Event,并要求返回sql_text,database_id,tsql_stack, --plan_handle和
session_id的信息
  --
  ADD EVENT sqlserver.lock_acquired
  (action
  ( s


相关文档:

.NET程序防范SQL注入式攻击的方法

  一、什么是SQL注入式攻击?
  所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。常见的SQL注入式攻击过程类如: ......

彻底删除sql server 2005

1.Stop 所有服务
 
2.用 Windows Install Clean Up 工具卸载SQL 2005组件
 
3.用SrvInstw.exe删除所有SQL服务
 
4.清除注册表
   a. 将HKEY_CURRENT_USER---Software----Microsoft下的Microsoft SQL Server文件夹全部删除
   b. 将HKEY_LOCAL_mACHINE---SOFTWARE---Microsoft下 ......

关于SQL的左右连接查询

一直以来对于SQL的查询都没怎么在意,今天遇到一个关于左连接查询的问题。
Select  uId ,uName,dpName
from users
left join dpart
on  users.pid=1 where u.pid=dpart.pid
结果是把users所有结果查询出来,而不是pid为1的用户
原来on后面必须放连接条件,其他的条件放在where里面
感谢夏欢提出 ......

select * into 和insert into SQL SERVER

select * into destTbl from srcTbl
insert into destTbl(fld1, fld2) select fld1, 5 from srcTbl
以上两句都是将 srcTbl 的数据插入到 destTbl,但两句又有区别的:
第一句(select into from)要求目标表(destTbl)不存在,因为在插入时会自动创建。
第二句(insert into select from)要求目标表(dest ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号