zoukankan      html  css  js  c++  java
  • 执行计划 编译时间等

    缓存执行计划

    SQL Server 2008提供了一些服务器对象来分析执行计划
    Sys.dm_exec_cached_plans:    包含缓存的执行计划,每个执行计划对应一行。
    Sys.dm_exec_plan_attributes: 这是一个系统函数,每一个执行计划都对应着一些属性,在这个系统函数中包含着这些属性。
    Sys.dm_exec_sql_text:             这是一个系统函数,返回文字格式的执行计划。
    Sys.dm_exec_query_plan:        这是一个系统函数,返回xml格式的执行计划。
    SQL Server 2008还提供了一个兼容性的视图sys.syscacheobject,这个视图中保存了所有的执行计划的信息。

    清除缓存

    在进行性能分析的时候有时候需要清除缓存以便进行下一次分析。SQL Server提供了一些工具来清除缓存的性能数据。使用下面的语句来完成这些任务。

    清除全局缓存使用下面的语句:

    DBCC DROPCLEANBUFFERS;

    从全局缓存中清除执行计划,使用下面的语句:

    DBCC FREEPROCCACHE;

    清除某一个数据库中的执行计划,使用下面的语句:

    DBCC FLUSHPROCINDB(<db_id>);

    清除一个特定的执行计划使用下面的语句:

    DBCC FREESYSTEMCACHE(<cachestore>);

    可以使用’ALL’,pool_name,’Object Plan’,’SQL Plans’,’Bound Trees’作为输入参数。’ALL’参数标明要清除所有的缓存,pool_name的值表明要清除的一个缓存池的名字。’Object Plans’清除对象计划(例如存储过程,触发器,用户定义函数等等)。’SQL Plans’用来清除要立即执行的语句。’Bound Trees’定义清除视图,约束等的缓存。

    注意:在使用这些语句清除缓存之前要想清楚,特别是在生产环境。这些对性能有很大的影响。清除这些缓存之后SQL Server需要从数据页中重新读取数据。并且SQL Server需要重新生成新的执行计划。因此在清除之前要想清楚这些对生产或者测试环境的影响。

    统计运行时间

    STATISTICS TIME是一个用来返回CPU时钟时间的session选项。它返回语法分析,编译,执行的时间。要使用这个选项首选要清除执行计划缓存。

    DBCC DROPCLEANBUFFERS;

    DBCC FREEPROCCACHE;

    运行下面的语句来打开相应的选项:

    SET STATISTICS TIME ON;

    运行下面的语句:
    SELECT orderid, custid, empid, shipperid, orderdate, filler FROM dbo.Orders WHERE orderdate >= '20060101' AND orderdate < '20060201'; 

    得到下面的信息:

    SQL Server parse and compile time:   //这里是编译时间

       CPU time = 0 ms, elapsed time = 4 ms. 

    SQL Server Execution Times:

       CPU time = 46 ms,  elapsed time = 544 ms.

    从这些信息中可以获得执行这个语句时候的CPU时钟时间,编译时间,运行时间。运行下面的语句可以关闭这个选项:

    SET STATISTICS TIME OFF; 

    当需要分析一个单独的语句的性能的时候这个选项非常有用。当需要使用批处理的模式来运行语句的时候需要度量会有所不同。在查询之前保存SYSDATETIME函数的值,并写入到一个表中。注意这个函数返回的时间格式是DATETIME2,可以精确到100纳秒。这个函数的准确性取决于计算机硬件和操作系统版本。因为这个函数会调用GetSystemTimeAsFileTime()这个WindowsAPI。需要统计时间的时候可以重复地运行请求语句,然后记录下需要的时间。

  • 相关阅读:
    助教观察记录5(10/21-11/3)
    助教观察记录4(10/07-10/20)
    助教观察记录3(9/23-10/06)
    助教观察记录1(9/5-9/15)
    2019年春季学期《C语言程序设计II》课程总结
    2020软件工程个人作业06——软件工程实践总结作业
    软件工程第二次作业
    2020软件工程作业3
    2020软件工程作业01
    神必高考数学题乱写
  • 原文地址:https://www.cnblogs.com/chencidi/p/3717864.html
Copyright © 2011-2022 走看看