赛迪网 > IT技术 数据库 > 精彩更新
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

可以帮助DBA监视和跟踪IDS服务器的三个表

发布时间:2008.07.24 09:10     来源:赛迪网    作者:茶晶

【赛迪网-IT技术报道】概述

Sysmaster 数据库是 IDS 系统中的一个伪数据库,它提供关于 IDS 服务器的共享内存结构的信息,对于监视服务器的状态和性能非常有帮助

我将通过一些示例解释如何使用 IDS 11(代码号“Cheetah”)中新的 Sysmaster 特性,并讨论以下七个 Sysmaster 表:

◆Sysnetclienttype、Sysnetglobal 和 Sysnetworkio,显示网络状态

◆Syssqltrace、Syssqltrace_info 和 Syssqltrace_iter,显示 SQL 配置文件和跟踪信息

◆Systhreads,记录线程和它们的等待统计数据

监视网络活动

有三个新表可以帮助 DBA 监视和跟踪 IDS 服务器的用户和客户机网络活动。这些表是:

◆Sysnetclienttype,显示每种客户机类型的网络活动概况

◆Sysnetglobal,提供系统网络的概况

◆Sysnetworkio,提供系统网络 I/O 的概况

Sysnetclienttype 表显示可以连接到服务器的所有客户机类型,以及在客户机和服务器之间生成的网络流量。总会显示的一个客户机类型是 sqlexec,这个类型分配给执行查询、插入、删除和更新的用户。随着时间的推移,会发生更多活动,所以 nc_reads 和 nc_writes 列会反映不断增加的网络读写数量。另一个客户机类型是 ontape。对于这个类型,当执行备份时,nc_reads 和 nc_writes 列显示的活动数量会增加。通过使用 Sysnetclienttype 表,可以按照连接服务器的客户机类型查看总体网络活动量。

Sysnetglobal 表包含一个记录,它显示全局设置和网络读写的总数。Sysnetworkio 表按照会话显示网络 I/O —— 因此,可以在这里查找消耗网络资源最多的会话。net_open_time、net_last_read 和 net_last_write 列包含最近一次网络活动的日期和时间,这些数据采用 Unix 时间格式,所以需要用 dbinfo 函数把它们转换为人可阅读的格式。下面的 SQL 语句按照会话显示最近一次网络活动的日期和时间:

清单1.显示最近一次网络活动的日期和时间

select

sid,

dbinfo( ‘utc_to_datetime’ , net_open_time ),

-- Date/time session started net connection

dbinfo( ‘utc_to_datetime’ , net_last_read ),

-- Date/time session performed last net read

dbinfo( ‘utc_to_datetime’ , net_last_write )

-- Date/time session performed last net

write from Sysnetworkio;

捕捉和跟踪SQL语句

最让兴奋的是,有三个新的 Sysmaster 表可以用来在运行 SQL 语句之后捕捉和跟踪 SQL 语句。要想使用这些表,必须在 ONCONFIG 文件中用 SQLTRACE 参数启用 SQL 跟踪特性,或者执行一个新的 dba 函数任务。这三个表是:

◆Syssqltrace,显示单一 SQL 语句的详细信息

◆Syssqltrace_info,包含 SQL 配置文件跟踪系统的信息

◆Syssqltrace_iter,列出 SQL 语句迭代器

这些都不是物理表,而是内存中的数据,所以在启用跟踪时,需要配置存储跟踪信息所用的内存量。当填满这个内存空间之后,就丢弃最旧的数据并替换为当前数据。在 ONCONFIG 文件中或通过新的 dba 函数任务启用跟踪需要四个参数:

◆Level 是要捕捉的数据的详细程度;这个参数可以设置为 off、low、med 或 high。默认值是 off,所以如果不启用跟踪,就不会捕捉信息。

◆Ntraces 是跟踪并存储在内存中的 SQL 语句的最大数量。达到这个数量之后,就会重用内存空间。最小数值是 500,最大数值取决于您希望使用的内存量。如果设置为 1000,那么第 1001 个 SQL 语句会重用第一个 SQL 语句的存储区域。

◆Size 是每个跟踪缓冲区的最大大小,以 KB 为单位,值的范围是从 1 到 100。

◆Mode 指定跟踪是针对所有用户(global),还是针对一个特定用户。

ONCONFIG 文件中的设置像下面这样:

SQLTRACE Level=low,Ntraces=1000,Size=2k,Mode=global

还可以使用新的 dba 函数临时启用这个特性,这在调试时非常方便。可以在 ONCONFIG 文件中禁用跟踪(换句话说,并不永久地启用它),只在需要时启用它。这个函数只能在新的 sysadmin 数据库上使用。下面的示例使用这个新函数启用跟踪。

清单2.使用新的 dba 函数临时启用跟踪

database sysadmin;

execute function task (“set sql tracing on”,1000, “2k”, “high”, “global” );

Once turned on, the next 1,000 (or whatever number is specified in Ntraces)

表1. Syssqltrace 列

sql_id  惟一的 SQL 执行 ID  
sql_address  语句在代码块中的地址  
sql_sid  运行 SQL 语句的用户的数据库会话 ID  
sql_uid  运行 SQL 语句的用户的用户 ID  
sql_stmttype  语句类型  
sql_stmtname  显示为单词形式的语句类型  
sql_finishtime  完成这个语句的时间(Unix 格式)  
sql_begintxtime  开始执行这个语句的时间  
sql_runtime  语句的执行时间  
sql_pgreads  这个 SQL 语句的磁盘读数量  
sql_bfreads  这个 SQL 语句的缓冲区读数量  
sql_rdcache  从缓冲区池读取页面的次数的百分比  
sql_bfidxreads  索引页面缓冲区读数量  
sql_pgwrites  写到磁盘的页面数量  
sql_bfwrites  修改并返回给缓冲区池的页面数量  
sql_wrcache  向缓冲区池写页面的次数的百分比  
sql_lockreq  这个 SQL 语句所需的锁的总数  
sql_lockwaits  这个 SQL 语句等待锁的次数  
sql_lockwttime  在执行这个 SQL 语句期间系统等待锁的时间  
sql_logspace  这个 SQL 语句在逻辑日志中使用的空间量  
sql_sorttotal  为这个语句运行的排序数量  
sql_sortdisk  在磁盘上运行的排序数量  
sql_sortmem  在内存中运行的排序数量  
sql_executions  这个 SQL 语句运行的次数  
sql_totaltime  运行这个语句花费的时间总量  
sql_avgtime  运行这个语句花费的时间平均量  
sql_maxtime  执行这个 SQL 语句花费的最大时间量  
sql_numiowaits  不得不等待 I/O 的次数  
sql_avgiowaits  这个 SQL 语句等待 I/O 的时间平均量  
sql_totaliowaits  这个 SQL 语句等待 I /O 的时间总量  
sql_rowspersec  每秒产生的平均行数  
sql_estcost  与这个 SQL 语句相关联的开销  
sql_estrows  这个 SQL 语句返回的行数的估计值  
sql_actualrows  这个 SQL 语句返回的行数  
sql_sqlerror  SQL 错误号  
sql_isamerror  RSAM/ISAM 错误号  
sql_isollevel  这个 SQL 语句的隔离级别  
sql_sqlmemory  执行这个 SQL 语句所需的字节数  
sql_numiterators  这个语句使用的迭代器数量  
sql_database  数据库名  
sql_numtables  执行这个 SQL 语句所用的表数量  
sql_tablelist  这个 SQL 语句中直接引用的表名的列表  
sql_statement  运行的 SQL 语句

启用跟踪之后,sqltrace 表会捕捉后面 1000 个(或者 Ntraces 中指定的数量)SQL 语句。onstat -g 命令将读取这个表,显示配置设置以及跟踪所捕捉到的所有 SQL 语句。表 1 显示 Syssqltrace 表的列(见表 1 所示)。

可以通过这个表了解 IDS 服务器上已经执行的 SQL 语句的详细信息。Syssqltrace 表包含 SQL 语句、执行 SQL 所用的资源、运行 SQL 花费的时间、磁盘/页面/缓冲区读和写的数量、使用的锁数量、排序数量和使用的内存量。另外,它还包含 IDS 优化器估计的运行这个 SQL 所要花费的时间。这个表非常有意思的一个好处是,可以对比 IDS 优化器估计的返回行数和实际的返回行数(sql_estrows 和 sql_actualrows)。如果这两个数值差异很大,就说明 IDS 优化器并不掌握关于表中行和索引数量的正确的统计数据。这意味着需要运行 update statistics,从而向优化器提供正确的数据。

在进行 IDS 调优时信息是关键因素

在进行监视和调优时,获得关于 IDS 服务器及其性能的丰富信息的能力是一个关键因素。IDS 11 中新增的这些 Sysmaster 表可以提供有用的信息。请在 dbaccess 或 Server Studio 中对这些新表运行一些选择语句,体会它们所提供的信息。(责任编辑:卢兆林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 一位DBA总结的数据库反规范设计常用方法 (07-14) · DBA:在生产环境中创建监控表DML的触发器 (07-10)
· DBA用于查询当前数据库表格记录条数的脚本 (07-04) · DBA:实例讲解非"Unicode"数据库中的XML (06-30)
· DBA创建用户帐户及分配特定特权的具体步骤 (06-27) · DBA创建用户帐户及分配特定特权的具体步骤 (06-27)
· 讲解DBA在系统设计和开发中的工作范畴 (06-26) · 讲解数据库管理员(DBA)与开发人员的关系 (06-25)
· DBA必须具备跨平台管理不同RDBMS的能力 (06-13) · DBA必须具备跨平台管理不同RDBMS的能力 (06-13)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 信息化市场百家争鸣 SaaS深陷争议“泥潭”
· 提高管理水平 "两栖"CIO应具备的六大能力
· 国产ITIL运维先行者 四大厂商角力BI市场
· 金融行业GSN专题解决方案 企业网解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统