当前位置:首页 » 数据仓库 » sql跟踪特定数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql跟踪特定数据库

发布时间: 2023-05-23 13:31:02

sql profiler 怎么跟踪指定客户端

可以使用 SQL Server Profiler 查看跟踪中捕获的事件数据。SQL Server Profiler 显示基于定义的跟踪属性的数据。分析 SQL Server 数据灶瞎的一种方式是将数据复制到其他程序中,例如 SQL Server 或数据库引擎优化顾问。如果跟踪中包括“文本”数据列,则数据库引擎优化顾问可以使用包含 SQL 批处理和远程过程调用 (RPC) 事件的跟踪文件。为了确保捕获正确的事件和列以便与数据库引擎优化顾问一起使用,请使用随 SQL Server Profiler一起提供的预定义优化模板。
使用 SQL Server Profiler打开跟踪时,如果跟踪文件是由 SQL Server Profiler或 SQL 跟踪系统存储过程创建的,则该文件不需要带 .trc 文件扩展名。

注意

SQL Server Profiler还可以读取 SQL 跟踪 .log 文件和通用 SQL 脚本文件。打开不带 .log 文件扩展名的 SQL 跟踪 .log 文件(例如 trace.txt)时,应将文件格式指定为 SQLTrace_Log。

您可以配置 SQL Server Profiler日期和时间显示格式以便有助于跟踪分析。

排除数据故障

使用 SQL Server Profiler时,您可以按“持续时间”、CPU、“读”或“写”数据列将跟踪或跟踪文件分组来排除数据故障。例如,您可以对性能差的查询或逻辑读取操作数特别高的族迅查询进行数据故障排除。
通过将跟踪保存至表和使用 Transact-SQL 查询事件数据,可以找到其他信息。例如,若要确定哪些 SQL:BatchCompleted 事件的等待时间过长,可执行:
SELECT TextData, Duration, CPU
FROM trace_table_name
WHERE EventClass = 12 -- SQL:BatchCompleted events
AND CPU < (Duration * 1000)

注意

服务器以微秒(百万分之一秒或 10-6 秒)为单位报告事件的持续时间,以毫秒(千分之一秒或 10-3 秒)为单位报告事件使用的 CPU 时间。SQL Server Profiler 图形用户界面默认以毫秒为单位显示“持续时间”列,但是当跟踪保存到文件或数据库表中时,将以微秒为单位写入“持续时间”列值。

查看跟踪时显示对象名称

如果您要显示对象名称而不是对象标识符(对象 ID),必须捕获“服务器名称”和“数据库 ID”数据列以及“对象名称”数据列。
如果您选择按“对象 ID”数据列分组,请确保先按“服务器名称”和“数据库 ID”数据列分组,然后按“对象 ID”数据列分组。同样,如果您选择按“索引 ID”数据列分组,请确保先按“服务器名称”、“数据库 ID”和“对象 ID”数据列分组,然后按“索引 ID”数据列分组。您必须按照此顺序分组,因为对象 ID 和索引 ID 在服务器和数据库之间并不是唯一的,而索引 ID 甚至在各对象之间都不是唯一的。

查找跟踪内的特定事件

若要查找跟踪中的事件隐穗空并对事件进行分组,请按下列步骤执行操作:
创建跟踪。
定义跟踪时,除了要捕获的任何其他数据列外,还要捕获“事件类”、ClientProcessID 和“开始时间”数据列。有关详细信息,请参阅创建跟踪 (SQL Server Profiler)。
按“事件类”数据列将捕获的数据分组,并将跟踪捕获至文件或表。若要将捕获的数据分组,请单击“跟踪属性”对话框中“事件选择”选项卡中的“组织列”。有关详细信息,请参阅组织跟踪中显示的列 (SQL Server Profiler)。
开始跟踪,并在经过适当时间或捕获了一定数量的事件后停止。
查找目标事件。
打开跟踪文件或表,并展开所需事件类的节点,例如,Deadlock Chain。有关详细信息,请参阅打开跟踪文件 (SQL Server Profiler)或打开跟踪表 (SQL Server Profiler)。
在跟踪数据中搜索直到找到所需的事件(使用 SQL Server Profiler的“编辑”菜单上的“查找”命令帮助查找跟踪中的值)。记录所跟踪事件的 ClientProcessID 和“开始时间”数据列中的值。
在上下文中显示事件。
显示跟踪属性,并按 ClientProcessID 数据列分组而不是按“事件类”数据列分组。
展开要查看的每个客户端进程 ID 的节点。手动搜索整个跟踪,或使用“查找”直到找到目标事件先前标记的“开始时间”值。这些事件与属于每个选定客户端进程 ID 的其他事件一起按时间顺序进行显示。例如,跟踪内捕获的“死锁”和“死锁链”事件在展开的客户端进程 ID 内紧跟在“SQL:BatchStarting”事件之后显示。

㈡ SQL Server Profiler怎么跟踪指定数据库标识ID

方法/步骤
1

先我需要查询出需要使用SQL Server
Profiler跟踪的数据库标识ID,若不知道怎么查询数据库的标识ID,可以参考笔者的经验:http://jingyan..com
/article/配脊ff411625bb451c12e5823778.html

2
然后需要在安装了数据库的服务器上打开SQL Server management studio,点击工具。

3
选择SQL Server Profiler。

4
输入数据库的SA与密码,点击连接。

5
在跟踪属性中,点击事逗卖信件选择

6
在这山轮个选项卡中,有一个列筛选器,点击它。

7
在筛选器中找到DatabaseID,条件等于你查询出来的数据库标识ID号。点击确定。

8
现在就可以点击运行SQL Server Profiler跟踪了。

㈢ SQL Server Profiler怎么跟踪指定数据库标识ID

首先我需要查询出需要使用sql
server
profiler跟踪的数据库标识id,若不知道怎么查询数据库的灶袜标识id
然后需要在安装扰首了数据库的服务器上打开sql
server
management
studio,点击工具。
选择sql
server
profiler。
输入缓辩数数据库的sa与密码,点击连接。
在跟踪属性中,点击事件选择
在这个选项卡中,有一个列筛选器,点击它。
在筛选器中找到databaseid,条件等于你查询出来的数据库标识id号。点击确定。
现在就可以点击运行sql
server
profiler跟踪了。

㈣ SQL2008如何跟踪某台电脑的执行语句

1、选择要操作的数据库。

㈤ SQL Server Profiler怎么跟踪指定数据库标识ID

首先我需要查询出需要使用sql
server
profiler跟踪的数据库标识id,若不知道怎么查询数据库的标识id
然后需要在安装了数据库的服务器上打开sql
server
management
studio,点击工具。
选择sql
server
profiler。
输入数据库的sa与密码,点击连接。
在跟踪属性中,点击事件选择
在这个选项卡中,有一个列筛选器,点击它。
在筛选器中找到databaseid,条件等于你查询出来的数据库标识id号。点击确定。
现在就可以点击运行sql
server
profiler跟踪了。

㈥ SQL Server Profiler怎么跟踪指定数据库标识ID

SQL Server Profiler是SQL数据库的跟踪工具,一般多个数据库若使用的SQL Server Profiler跟踪工具,跟踪出来的结果会很多,有团闭唤多个数据库跟踪结果。很不方便查找跟踪结果,所以我们需要跟踪指定的某一个数据库就可以了,SQL Server Profiler跟踪工具可以设定筛选的数据标识ID。达到只跟踪指定的数据库。
1
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标识ID,若不知道怎么查询数据库的标识ID(参考http://jingyan..com/article/ff411625bb451c12e5823778.html)
2
然后需要在安装了数据库的服务器上打开SQL Server management studio,点击工具。
3
选择SQL Server Profiler。
4
输入数据库的SA与密码,点击连接。
5
在跟踪属性中,点击事件选态颂择
6
在这个选项卡中,有一个列筛选器,点击它。
7
在筛选塌凯器中找到DatabaseID,条件等于你查询出来的数据库标识ID号。点击确定。
8
现在就可以点击运行SQL Server Profiler跟踪了。

㈦ SQL Server Profiler怎么跟踪指定数据库标识ID

先在跟踪选项中选择显示所有跟踪列洞笑,然后右键点击databaseid列(当然也有databasename列)并选让乎中,然纳滑含后再在筛选器中过滤出你要的ID

㈧ sql server 2005数据库跟踪的问题

跟踪属型迟性-选择事卜租宏件-所有列-databasename列选上就可以看到型册数据库名了,好像不能只看某一个数据库的,profiler链接的是数据库实例。

㈨ 如何使用SQL Server Profiler跟踪数据库

工具/材料

SQL SERVER 2008

  • 01

    首先打开SQL SERVER Management管理工具,如下图所示,选择工具菜单下面的SQL SERVER Profiler选项

  • 02

    然后管理核兆工具会自动跳出数据库连接的界面,这里填写好要跟踪的数据库,然后点击连接,如下图所示

  • 03

    接下来就进入到跟踪属性的设置界面,蔽空如下图所示,在这个界面改并租需要给跟踪起名字,选择跟踪模板

  • 04

    然后切换到事件选择的页卡,如下图所示,在这里设置需要跟踪哪些类型的SQL语句

  • 05

    接下来我们在SQL SERVER的管理工具执行一个SQL语句,如下图所示,下面就需要跟踪这个SQL语句的执行过程

  • 06

    然后我们就会在SQL SERVER Profiler工具中看到这个SQL执行的过程,跟踪工具中显示了SQL对资源的消耗情况,读写次数等信息,如下图所示

  • 07

    最后执行完了以后,记住暂停或者停止跟踪,否则跟踪等到停止时间才会停止,如下图所示

㈩ 如何打开oracle的sql后台跟踪功能

一.在系统级别上设置sql跟踪
该方法优点:可以跟踪所有的oracle的后台进程所执行的sql,包括系统后台进程和用户进程,并且可以跟踪所有的操作
缺点:跟踪所有的后台进程,跟踪信息量比较大
1.在sqlplus中以sys/ as sysdba身份登陆到数据库。
2.打开跟踪,在sqlplus中输入alter sysetem set events '10046 trace name context forever,level &level';
(其中&level可以输入1,4,8,12三个级别,不同的级别含有不同级别的信息)
3.然后到ArcMap或ArcCatalog中进行你想跟踪的操作
4.关闭跟踪,在sqlplus中输入alter systemm set events '10046 trace name context off';
5.查找你所跟踪的session的ID
A 修改时间格式:alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
B.对使用sde服务的输入:select sid,logon_time from v$session where username=&username and program='gsrvr.exe';
C.对直连这种方式输入:select sid,logon_time from v$session where username=&username and program='ArcCatalog';
select sid,logon_time from v$session where username=&username and program='ArcMap';
(其中&username是程序登陆到数据库的用户名,如果返回多个结果,在根据登陆的时间确定具体的sid值)
6.执行以下的sql语句
SELECT d.VALUE
|| '/'
|| LOWER (RTRIM (i.INSTANCE, CHR (0)))
|| '_ora_'
|| p.spid
|| '.trc' trace_file_name
FROM (SELECT p.spid
FROM v$mystat m, v$session s, v$process p
WHERE m.statistic# = 1 AND s.SID = &SID AND p.addr = s.paddr) p,
(SELECT t.INSTANCE
FROM v$thread t, v$parameter v
WHERE v.NAME = 'thread'
AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,
(SELECT VALUE
FROM v$parameter
WHERE NAME = 'user_mp_dest') d
在输入sid后,即得到后台的跟踪文件。

二. 在session级别上设置跟踪
该方法只适用于跟踪登陆数据后所进行的一系列的操作,比如跟踪在ArcCatalog中创建一个Dataset,FeatureClass等的操作
1.在sqlplus中以sys / as sysdba身份登陆到数据库
2.查找你所要跟踪的session的sid和serial#
A 修改时间格式:alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
B.对使用sde服务的输入:select sid,serial#,logon_time from v$session where username=&username and program='gsrvr.exe';
C.对直连这种方式输入:select sid,serial#,logon_time from v$session where username=&username and program='ArcCatalog';
select sid,serial#,logon_time from v$session where username=&username and program='ArcMap';
(其中&username是程序登陆到数据库的用户名,如果返回多个结果,在根据登陆的时间确定具体的sid和serial#的值)
3.开始跟踪,输入exec dbms_support.start_trace_in_session(&sid,&serial#,true,true).(如果系统没有安装dbms_support包,可以执行$ORACLE_HOME\rdbms\admin\dbmssupp.sql进行安装)
4.然后到ArcMap或ArcCatalog中进行你想跟踪的操作
5.结束跟踪exec dbms_support.stop_trace_in_session(&sid,&serial#);
6.执行以下的sql语句
SELECT d.VALUE
|| '/'
|| LOWER (RTRIM (i.INSTANCE, CHR (0)))
|| '_ora_'
|| p.spid
|| '.trc' trace_file_name
FROM (SELECT p.spid
FROM v$mystat m, v$session s, v$process p
WHERE m.statistic# = 1 AND s.SID = &SID AND p.addr = s.paddr) p,
(SELECT t.INSTANCE
FROM v$thread t, v$parameter v
WHERE v.NAME = 'thread'
AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,
(SELECT VALUE
FROM v$parameter
WHERE NAME = 'user_mp_dest') d
在输入sid后,即得到后台的跟踪文件。

三. 在Aix系统下跟踪消耗内存的session的办法
1.在Aix系统上执行export TERM=vt100
2.执行topas命令,确定最占cpu资源的process的进程号
3,然后利用select a.sid,b.serial# from v$session a,v$process b where a.paddr=b.addr and b.spid=&spid;
4.确定sid和serial#后利用二方法进行跟踪。