
二、生成跟踪脚本的最简式 事件探查器建立跟踪, 并设置好各种选项, 完成后运行跟踪 然后生成脚本: 事件探查器--文件--导出跟踪定义的文件--选择合适的版本 这样就会生成一个跟踪的脚本, 打开生成的脚本, 修改里面的: exec @rc = sp_trace_create 部分, 设置跟踪结果的保存文件(用语句跟踪的时候, 跟踪结果只能保存到文件) 然后, 在需要跟踪的时候, 运行这个脚本来启动跟踪 启动跟踪后, 跟踪自动进行, 所以你可以关闭查询分析器做其他事情去了 三、已知的问题 1 跟踪记录不是实时写入跟踪文件的, 因此, 可能会到你停止跟踪的时候, 跟踪信息才写入跟踪文件 2 查看当前已经进行的跟踪可以用(关于结果集的解释, 请看联机帮助): SELECT FROM ::fn_trace_getinfo(0)3 停止某个跟踪, 可以在sp_trace_create 语句中设置自动停止时间, 也可以手动停止跟踪, 用下面的语句: EXEC sp_trace_setstatus @traceid = 1 , -- 跟踪的id @status = 0 -- 停止, 这样以后还可能指定此项为来启用 EXEC sp_trace_setstatus @traceid = 1 , @status = 2 -- 关闭, 彻底释放
需要建立一张表来记录
explain plan SET statement_id='name' FOR (这里是你要调试的语句 )
SELECT
AOPERATION,
OPTIONS,
OBJECT_NAME,
OBJECT_TYPE,
ID,
PARENT_ID
FROM
PLAN_TABLE A
WHERE
STATEMENT_ID='name'
ORDER BY
Id;
ID 'name'是一个标识,你可以自己取,字段有很多个,以下是各个字段的解释(可能格式不对,你可以复制后看):
字段名 字段类型 含义
STATEMENT_ID VARCHAR2(30) explain PLAN 语句中所指定的最优STATEMENT_ID 参数值, 如果在EXPLAN PLAN语句中没有使用SET STATEMENT_ID,那么此值会被设为NULL。
REMARKS VARCHAR2(80) 与被解释规划的各步骤相关联的注释最长可达80 字节
OPERATION VARCHAR2(30) 各步骤所执行内部 *** 作的名称在某条语句所产生的第一行中该列的可能取值如下DELETE STATEMENT INSERT STATEMENT SELECT STATEMENT UPDATE STATEMENT
OPTIONS VARCHAR2(30) 对OPERATION 列中所描述 *** 作的变种
OBJECT_NODE VARCHAR2(128) 用于访问对象的数据库链接database link 的名称对于使用并行执行的本地查询该列能够描述 *** 作中输出的次序
OBJECT_OWNER VARCHAR2(30) 对于包含有表或索引的架构schema 给出其所有者的名称
OBJECT_NAME VARCHAR2(30) 表或索引的名称
OBJECT_INSTANCE INTEGER 根据对象出现在原始original 语句中的次序所给出的相应次序编号就原始的语句文本而论其处理顺序为自左至右自外向内景象扩张view
OBJECT_TYPE VARCHAR2(30) 用于提供对象描述性信息的修饰符例如索引的NON-UNIQUE
OPTIMIZER VARCHAR2(255) 当前优化程序的模式
ID INTEGER 分配给执行规划各步骤的编号
PARENT_ID INTEGER 对ID 步骤的输出进行 *** 作的下一个执行步骤的ID
POSITION INTEGER 对于具有相同PARENT_ID 的步骤其相应的处理次序
COST INTEGER 根据优化程序的基于开销的方法所估计出的 *** 作开销值对于使用基于规则方法的语句该列为空该列值没有特定的测量单位它只是一个用于比较执行规划开销大小的权重值
CARDINALITY INTEGER 根据基于开销的方法对 *** 作所访问行数的估计值
BYTES INTEGER 根据基于开销的方法对 *** 作所访问字节的估计
=============================================
你按照我说的做,后面用
SELECT
FROM
PLAN_TABLE A
WHERE
STATEMENT_ID='name'
结果已经很清楚了,全部满足你的要求。
各列的具体含义上面已经给出。
如果你说的是sql server的时间探查器 要跟踪网站的sql语句,在你不是恶意攻击的情况下,比较简单,你只要确保你能连接到数据库所在的服务器(至于跟iis或者tomcat服务器是否连通没有关系),单开时间探查器,新建跟踪,选择要跟踪的数据库服务,确定,然后d出面板选择筛选选项卡,然后找到hostname选项,里面有个同于的框子 输入iis或者tomcat服务器的计算机名,再确定就可以了
DB_ID
返回数据库标识 (ID) 号。
语法
DB_ID ( [ 'database_name' ] )
USE master
SELECT name, DB_ID(name) AS DB_ID
FROM sysdatabases
ORDER BY dbid
可以
有个databaseid选项,选中后,在下方的文本框中输入要跟踪的数据库名称即可,也可以跟踪某个用户的数据库;
跟踪表具体作法:
1建立一个跟踪,
2.修改跟踪属性,
跟踪数据列至少包括TEXTDATA列,
跟踪事件至少包括TSQL所有子项,
跟在筛选条件中加入TEXTDATA同于%表名%或同于%列名%,
3运行。
这样就可以监视所有包括表名或列名(任选其一)SQL命令或存储过程。
以上就是关于如何用T-SQL语句来建立启动跟踪(2)全部的内容,包括:如何用T-SQL语句来建立启动跟踪(2)、BS的oracle程序运行的SQL语句怎么跟踪需要详细的方法和步骤、如何利用事件跟踪器查询网站sql语句等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)