sql基线建立-知识准备

  1. 1,SQLdiag is a successor of PSSdiag. SQL Nexus is a tool used to load and analyze performance data collected by SQLdiag
  2. SQLdiag作用是收集以下信息。
  • Windows服务器的软硬件信息(通过MSInfo32公用程序提取)
  • Windows性能计数器,事件记录
  • SQLSERVER服务器Profiler跟踪
  • SQLSERVER错误记录
  • SQLSERVER封锁信息
  • SQLSERVER分配信息
  • 自定义信息。
  • 可用pssdiag图形化配置:http://diagmanager.codeplex.com/

3,SQLdiag信息

  • 存在于\Program Files\Microsoft SQL Server\90\Tools\Binn目录下
  • 日志文件放在\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLdiag目录下。
  • 指定配置文件产生地址:sqldiag -PC:\SQLdiag,会产生以下配置文件
    • MSDiagProcs.sql:对sqlserver实例进行的初始化操作,多是在Tempdb系统库上建立对象。
    • SQLDiag.XML:默认读取的配置文件,提供标准的数据搜集,包含Perfmon,SqlServer错误处理,设置状态等。
    • SD_Detailed.XML:设置SQLDiag.XML更详细的信息
    • SD_General.XML:设置SQLDiag.XML精简的信息
    • SQLDiag_Schema.XSD:用来编写,修改,验证既有的XML配置文件
  • 4,SQLDiag.XML配置。各节点中,EventlogCollector:收集系统信息,PerfmonCollector收集监控系统,Instances收集SQLSERVER信息
  • 默认的Instances的事件是各跟踪事件信息,对应事件可在sys.trace_events中查看。
  • sqldiag的唯一缺点是不会定期查询系统视图,

    所以若加上PerfStatsScript.sql监视脚本输出,就比较全面了。
    PerfStatsScript:说明:建立两个存储过程,
        1)sp_perf_stats09:–列出最耗时的请求及找到阻塞源头,#tmp_requests:查询当前活动的请求,任务,等基本信息–#tmp_requests2:据#tmp_requests查询当前的活动事务,阻塞的进程
        2)sp_perf_stats_infrequent09:收集sqlserver的性能计数器,如内存管理,CLR等sys.dm_os_performance_counters,CPU运行情况,I/O情况
        每10分钟执行一次sp_perf_stats09,每小时执行一次sp_perf_stats_infrequent09

    定制执行SQL
    <CustomTask enabled="true" groupname="ByronSP" taskname="ReusePlanPercentage" type="TSQL_Command"  point="Startup"  wait="OnlyOnShutdown" cmd="exec tempdb.dbo.GetTable" />
    输出结果在:
    SQLDI\taskname_Startup.OUT

    sql是执行一次就结束了,若想多次执行,

    则调用spPollSP存储过程,定时执行。
    if object_id(‘dbo.spPollSP‘) IS NOT NULL –加在MSDiagProcs.sql内
    DROP PROC DBO.spPollSP
    GO
    PRINT ‘‘

    RAISERROR(‘====建立存储过程dbo.spPollSP,以重复调用其他存储过程‘,0,1)
    WITH NOWAIT
    GO

    CREATE PROC dbo.spPollSP @spName sysname, @interval char(8)=‘00:01:00‘
    AS
    DECLARE @SQL NVARCHAR(200)
    SET @SQL = ‘EXEC ‘ [email protected] + ‘; WAITFOR DELAY ‘‘‘ + @interval + ‘‘‘‘
    WHILE 1=1
        EXEC(@SQL)
    GO

    sqldiag参数
    如:sqldiag -Pc:\sqldiag /B +00:01:00 /E +00:10:00 /n 1 /L
    1分钟后开始执行,10分钟后停止。连续运行

    以服务运行,直到10:19分时停止
    sqldiag -P"C:\sqldiag" -E20120508_10:23:00 -N2 -R
    net start sqldiag

    卸载:
    net stop sqldiag
    sqldiag -u

    日志文件转成csv文件:
    relog SQLDIAG.BLG -f csv -o "C:\sqldiag\SQLDIAG_00001\a
    .csv"

    relog sqldiag.blg -q -o counter.txt — 查看记数器

    /I configuration_file
    设置 SQLdiag 要使用的配置文件。默认情况下,/I 设置为 SQLDiag.Xml。

    /O output_folder_path
    将 SQLdiag 输出重定向到指定文件夹。如果未指定 /O 选项,则 SQLdiag 输出结果将会写入 SQLdiag 启动文件夹下名为 SQLDIAG 的子文件夹中。如果 SQLDIAG 文件夹不存在,则 SQLdiag 将会尝试创建该文件夹。

    /P support_folder_path
    设置支持文件夹路径。默认情况下,将 /P 设置存放 SQLdiag 可执行文件的文件夹。

    /B [+]start_time
    按照以下格式指定开始收集诊断数据的日期和时间:

    按照以下格式指定开始收集诊断数据的日期和时间:

    YYYYMMDD_HH:MM:SS

    使用 + 并且不带日期(只使用 HH:MM:SS),可以指定相对于当前日期和时间的时间。例如,如果指定 /B +02:00:00,则 SQLdiag 将会在 2 小时后开始收集信息。

    不要在 + 和指定的 start_time 之间插入空格。

    /E [+]stop_time
    按照以下格式指定停止收集诊断数据的日期和时间:

    使用 /B +02:00:00 /E +03:00:00 指定开始时间和结束时间,则 SQLdiag 将会在 2 小时后开始收集信息,经过 3 小时信息收集后停止收集并退出。

    /R
    将 SQLdiag 注册为服务。您将 SQLdiag 注册为服务时指定的所有命令行参数,都将留到以后用来运行该服务。

    /U
    撤消 SQLdiag 服务注册。

    /N output_folder_management_option ,如:sqldiag /N 1
    设置 SQLdiag 在其启动时,是覆盖还是重命名输出文件夹。可用选项包括:

    1 = 覆盖输出文件夹(默认)

    2 = 当 SQLdiag 启动时,将输出文件夹重命名为 SQLDIAG_00001、SQLDIAG_00002 等等。重命名当前输出文件夹之后,SQLdiag 将输出写入默认输出文件夹 SQLDIAG。

    /L:连续运行sqldiag

    5,一般设置提纲为:记录两小时,每4秒记录一次,记录一天,每30秒记录一次,记录5天,每180秒记录一次,以免影响系统性能,且能放映系统持久变化。

  • 要收集的perfmon信息在PerfmonCounters下面增加:

1,内存
<PerfmonObject name="\Memory" enabled="true">
                          <PerfmonCounter name="\Available MBytes" enabled="true" />
                          <PerfmonCounter name="\Page Faults/sec" enabled="true" />
                          <PerfmonCounter name="\Pages/sec" enabled="true" />
                        </PerfmonObject>
 Pages/sec:磁盘进行读取或写入的频率,平均值应低于20
 Available MBytes:低于物理内在的10%,就会性能影响,100M以上是严重性能问题
2,磁盘
  <PerfmonObject name="\PhysicalDisk(*)" enabled="true">
                          <PerfmonCounter name="\% Disk Time" enabled="true" />
                          <PerfmonCounter name="\Avg. Disk Queue Length" enabled="true" />
                          <PerfmonCounter name="\Current Disk Queue Length" enabled="true" />
                        </PerfmonObject>
% Disk Time:磁盘读取/写入操作的时间百分比,若平均值>70%,说明硬盘有问题,可进一步查询是否是内存不足导致,当使用RAID设备时,此值有可能>100%,此时要看PhysicalDisk:Avg.Disk Queue Length计数器的值,此值越低越好。
Current Disk Queue Length:正在等待磁盘访问的请求,小于2,越低越好。
3,处理器
 <PerfmonObject name="\Processor(*)" enabled="true">
                          <PerfmonCounter name="\% Processor Time" enabled="true" />
                          <PerfmonCounter name="\% Privileged Time" enabled="true" />
                        </PerfmonObject>
% Processor Time:持续值应低于80
Privileged Time:执行Windows系统核心命令的时间百分比,持续小于10
4,内存文件
 <PerfmonObject name="\Paging File(*)" enabled="false">
                          <PerfmonCounter name="\% Usage" enabled="false" />
                        </PerfmonObject>
% Usage:比率值高于70%,表示要加内存了。

时间: 2024-08-29 14:14:42

sql基线建立-知识准备的相关文章

sql基线建立-步骤

1,在目标机上收集性能指标:   运行:    配置文件    执行以下命令:    以服务运行    早上8点到晚18点.    SQLDIAG -P"C:\sqldiag" -B 08:00:00 -E 18:30:00 -N2 -R     net start sqldiag 卸载:     net stop sqldiag     sqldiag -u2,将最后生成的sqldiag.blg文件用PAL工具转化,生成分析结果,观察此结果,并重点解决问题处.    将sqldiag

SQL Server 索引知识-应用,维护

创建聚集索引 a索引键最好唯一(如果不唯一会隐形建立uniquier列(4字节)确保唯一,也就是这列都会复制到所有非聚集索引中) b聚集索引列所占空间应尽量小(否则也会使非聚集索引的空间变大) c聚集索引应固定,不能随便改动(否则会引起分页,碎片,非聚集索引被迫修改等一些列问题) d聚集索引键一般与主键(primary key)分开(基于方便业务调整,如业务逻辑存储数据与clustered index key一致且不会改变,则主键可为聚集索引) 应用实例: 选择聚集键时,尽量避免因插入引起的分页

SQL Server2005基础知识(created by one friend)

1 -- 创建表book的Transact-SQL语句: 2 create database test01 3 create table test01.dbo.book( 4 book_id nchar(6) not null, 5 book_name nchar(30) null, 6 price numeric(10,2) null, 7 constraint PK_book primary key clustered(book_id asc)--建立主键 8 )on [primary] 9

数据库SQL的基础知识及java连接数据库的基本操作过程

数据库SQL的基础知识 [补充数据库基本知识点] 数据库是按照一定的数据结构来组织.存储和管理数据的仓库 数据库管理系统是一种操纵和管理数据库的大型软件,用于建立.使用和维护数据库 1.数据库表的完整性约束:域约束(表中字段取值范围).主码约束(主键,唯一确定一条记录).外码约束(表中一个字段,确实另外一张表的主码) 用SQL语句生成外键: //为foods表的CategoryId字段生成外键fk_Foods_Category alter table foods add constraint f

用思维导图建立知识的链接和结构

如果只用一种方式了解某样事物,你就不会真正了解它.了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系.通过联系,你可将想法内化于心,从各种角度看问题,直到找到适合自己的方法.这才是思考的真谛! ——马文·明斯 不要担心你以前没有接触过相关的专业知识,学习起来会很吃力! 其实,学习,是一个将新知识与已经掌握的知识相链接的过程. 思维导图和曼陀罗思维法是最好的帮助我们建立知识链接的工具. \ 思维导图又叫心智图,是表达发射性思维的有效的图形思维工具 ,它简单却又极其有效,是一种革命性的思维

与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。

今天同学请教我数据库为什么打不开了,打开SQL Server 2008 的 SQL Server Management Studio,输入sa的密码发现,无法登陆数据库?提示以下错误: "在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)": 他最近刚刚装过了

SQL Server基础知识

查看sql server版本 select @@VERSION 基本操作 use tty; 使用tty数据库 create table tt(name varchar(10)); 新建表tt insert into tt values('ftp'); 插入数据ftp select * from tt; 查看表tt delete from tt; 删除表表tt中的一条记录 运行命令的快捷方式: Alt+x 重启数据库服务 net restart mssqlserver 修改用户密码 企业管理器——

SQL数据库基础知识-巩固篇&lt;一&gt;

SQL数据库基础知识-巩固篇<一>... 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用了> MySQL-57 DataBase MS-SQLServer-2000 DataBase SQL的含义:结构化查询语言(Structured Query Language)简称SQL 作用:SQL(Structured Query Language,结构化查询语言)是一种用于操作数据库的语言. 结构化查询语言包含6个部分:一:数

SQL语句之 知识补充

SQL语句之 知识补充 一.存储过程 运用SQL语句,写出一个像函数的模块,这就是存储过程. 需求: 编写存储过程,查询所有员工 -- 创建存储过程(必须要指定结束符号) -- 定义结束符号 DELIMITER $ CREATE PROCEDURE pro_test() BEGIN SELECT * FROM student; END $ CALL pro_test     -- 调用存储过程 创建存储语句: delimiter 结束符号 create procedure 存储过程名称( 参数列