SQL Server 在执行Query时,自动将此次活动的相关信息记录下来,并且保存在内存之中,这些活动信息,称作 DMV。DMV是在SQL Server实例级别上保存的。DMV使用内存作为媒介来存储信息,不需要IO,获取数据速度快,不会对Server产生压力,并且DMV直接存储在Server的内存中,能够及时、精确地反映Server的最新状态。在使用DMV时,有两点需要注意:
1,确定数据保存的时间
由于内存是易失性的,一旦SQL Server重启,那么DMV存储的信息将全部重置。在使用DMV时,首先需要确定这些信息在内存中保存了多上时间,以确定DMV数据的可用性。如果SQL Server仅仅运行很短的一段时间,那么对DMV数据进行统计和分析是不合适的,这些数据不是SQL Server instance真实工作负载的数据样本。SQL Server运行的时候越长,DMV中保存的信息就越多(当然,DMV非常小,不会对内存造成压力),利用DMV分析就越准确。
2,DMV使用的内存有限
DMV能够使用的内存是有限的,这使得DMV能够返回的数据是有限的。如果SQL Server运行了很长世间,SQL Server Engine会将一些DMV的老数据覆盖。
推荐文档:
https://www.simple-talk.com/sql/database-administration/baselining-with-sql-server-dynamic-management-views/
时间: 2024-10-05 06:31:25