如何找到最活跃的数据库?
我的意思是说,我有10个DB,并且在这些DB上不断发生一些事务。
我想知道哪一天使用较少,哪个DB事务处理较少,或一天中活动较少。
发布于 2016-04-21 08:46:15
捕捉到这一点:
Select instance_name As Database_Name,
cntr_value As TranSec
From sys.dm_os_performance_counters where counter_name = 'Transactions/sec'
And instance_name <> '_Total'
Order By instance_name然后在一天结束的时候再做一次。从另一组值中减去一组值。这会给你带来最多的交易。
您可以为登录/秒查找类似的计数器,但它可能会产生误导,这取决于应用程序如何连接到数据库,以及它是否保持连接打开。
另一种很好的方法是磁盘IO,但这也可能产生误导,因为很多东西可能会出现,并且是由备份/维护引起的。
Select Db_Name(mf.database_id) As Database_Name,
Sum(a.num_of_reads) As Reads,
Sum(a.num_of_bytes_read) As Bytes_Read,
Sum(a.num_of_writes) As Writes,
Sum(a.num_of_bytes_written) As Bytes_Written
From sys.master_files mf
Cross Apply sys.dm_io_virtual_file_stats(mf.database_id, mf.file_id) a
Group By Db_Name(mf.database_id)
Order By 1一次又一次,你会在早上和下午运行它,并减去比较。
发布于 2016-04-21 08:22:14
除非您有带有Server管理包的系统中心操作管理器,否则最好的方法是设置一些查询适当DMV的数据收集器。
假设您正在运行Server 2008 +,您可以使用在实例上设置一个。结果是一个性能仪表板样式的图形用户界面。
开箱即用很容易,信息丰富,当你对默认的度量感到厌烦时,它可以很容易地扩展。
https://dba.stackexchange.com/questions/135999
复制相似问题