使用 SQL Server Profiler 的實例
使用 SQL Server 事件探查器的方案
使用 SQL Server Profiler的第一步是确定监视 SQL Server 实例的原因。本主题讨论使用 SQL Server Profiler收集跟踪信息的典型方案。
使用 SQL Server Profiler的典型方案包括:
查找执行情况最差的查询。
例如,可以创建一个捕获与 TSQL 和 Stored Procedure 事件类(RPC:Completed 和 SQL:BatchCompleted)相关的事件的跟踪。在此跟踪中包括所有数据列,按 Duration 分组并指定事件准则。例如,如果指定事件的 Duration 必须至少为 10000 微秒,则可以从跟踪中清除持续时间较短的事件。可以根据需要增大 Duration 的最小值。如果希望一次仅监视一个数据库,请指定 Database ID 事件标准的值。
确定死锁的原因。
例如,可以创建一个捕获与 TSQL 和 Stored Procedure 事件类(RPC:Starting 和 SQL:BatchStarting)和 Locks 事件类(Deadlock graph、Lock:Deadlock 或 Lock:Deadlock Chain)相关的事件的跟踪。在此跟踪中包括所有数据列并按 Event Class 分组。如果希望一次仅监视一个数据库,请指定 Database ID 事件标准的值。如果指定 Deadlock graph 事件类,SQL Server Profiler将生成图形化表示形式的死锁。有关详细信息,请参阅使用 SQL Server Profiler 分析死锁。
若要查看死锁中涉及的连接,请执行下列操作之一:
打开包含捕获的数据的跟踪,按 ClientProcessID 对数据进行分组并展开死锁中涉及的两个连接。
将捕获的数据保存到跟踪文件中,然后两次打开此跟踪文件,使其出现在两个单独的 SQL Server Profiler窗口中。按 ClientProcessID 对捕获的数据进行分组,然后展开死锁中涉及的客户端进程 ID;每个死锁的连接将出现在一个单独的窗口中。平铺这两个窗口以查看导致死锁的事件。如果要将特定死锁图形数据保存到文件,请右键单击死锁事件并选择“提取事件数据”。
监视存储过程性能。
例如,可以创建一个捕获与 Stored Procedure 事件类(SP:Completed、SP:Starting、SP:StmtCompleted 和 SP:StmtStarting)和 TSQL 事件类(SQL:BatchStarting 和 SQL:BatchCompleted)相关的事件的跟踪。在此跟踪中包括所有必要的数据列并按 ClientProcessID 分组。如果希望一次只监视一个数据库,请使用数据库 ID 筛选器为“数据库 ID”事件标准指定一个值。同样,如果希望一次只监视一个存储过程,请使用对象 ID 筛选器为“对象 ID”事件标准指定一个值。
审核 SQL Server
相关文档:
使用SQL Server身份验证登录时报错:
无法连接到.\SQLEXPRESS.
Additional information:
用户'sa'登录失败。该用户与可信SQL Server 连接无关联。(microsoft SQL Server,Error:18452))
------------------
下面是映射时报的错:
创建对于用户“sa”失败。(microsoft.sqlServer.express.smo)
Additional ......
以string 类型的Name为例
在SQL 语句里: string sql="Name like'%" + Name.Text + "%';
在存储过程里:
if @Name!=''
begin
set @strWhere= +' and Name like '''+'%'+@Name+'%'+''''
end
存储过程中的引号是单引号.
like '''+'%'中间不用+认不 ......
此方法是从一位前辈那里学来的,导语句很方便,只需写清楚表名就行。怕忘了,暂记一下。(sql server 2005试验过)
第一次使用的话,需要建立如下存储过程。代码很长,没关系,直接copy就行。
--------- outputdata 存储过程
CREATE PROCEDURE dbo.OutputData
@tablename sysname
AS
declare @column va ......
declare @tb3 table (商品编号 nvarchar(10),批次号 nvarchar(10),库存数量 int,出库数量 int)
declare @tb1 table (商品编号 nvarchar(10),批次号 nvarchar(10),库存数量 int)
insert into @tb1 select '0001','090801',200
union all select '0001','090501',50
&n ......