zoukankan      html  css  js  c++  java
  • 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 FilesMicrosoft SQL Server90ToolsBinn目录下
    • 日志文件放在Program FilesMicrosoft SQL Server90ToolsBinnSQLdiag目录下。
    • 指定配置文件产生地址: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 askname_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 ' +@spName + '; 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:sqldiagSQLDIAG_00001a
      .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%,表示要加内存了。
  • 相关阅读:
    算法和编程面试题
    递归,排序等算法编程题
    webservice部分和J2EE相关面试题
    有关线程的面试题
    JavaWeb部分面试题
    Html和JS的一些面试题
    pageContext,request,session,application四大作用域的区别
    企业架构研究总结(17)——联邦企业架构之我见
    企业架构研究总结(19)——TOGAF架构开发方法(ADM)之准备阶段
    企业架构研究总结(18)——TOGAF总论及架构开发方法(ADM)概述
  • 原文地址:https://www.cnblogs.com/heqianjin/p/5698605.html
Copyright © 2011-2022 走看看