English 中文(简体)
B. 寻找q服务器数据库瓶颈的工具
原标题:Tool for finding the database bottlenecks in sql server

在我测试我的申请时,我喜欢一种监测 s服务器的工具。 THe applicatino当然会提出不同的询问。

From the tool I would like an output like: - this query was slow because index is missing on this field

和这种信息。

但是,我要强调关键数据,例如,有100个指数缺失,但其中99个指数会提高0.05%的绩效,其中1个将给定点带来6000%的效益。 突出热点也很重要。

还需要一种商业产品(具有充分特点――无限制――审判)。

最佳回答

你并不完全需要一种工具。 我个人利用以下问询向我显示SQ服务器需要什么指数,这表明服务器对指数、估计改进的频率。

SELECT user_seeks * avg_total_user_cost * (avg_user_impact * 0.01) AS index_advantage,
   migs.last_user_seek,
   mid.statement AS  Database.Schema.Table ,
   mid.equality_columns,
   mid.inequality_columns,
   mid.included_columns,
   migs.unique_compiles,
   migs.user_seeks,
   migs.avg_total_user_cost,
   migs.avg_user_impact
FROM sys.dm_db_missing_index_group_stats AS migs WITH (NOLOCK)
INNER JOIN sys.dm_db_missing_index_groups AS mig WITH (NOLOCK) 
    ON migs.group_handle = mig.index_group_handle
INNER JOIN sys.dm_db_missing_index_details AS mid WITH (NOLOCK) 
    ON mig.index_handle = mid.index_handle
ORDER BY index_advantage DESC;

如果你想确定缓慢的问询简介员是你的朋友,那么就在时间上设置了过滤器,并重新确定。 然后通过数据库引擎通勤顾问(两者都由服务器库组成)。

问题回答
  • SQL Server Profiler
  • SQL Database Advisor

Have a look at SQL Copilot. There is a free version, and the full version is cheap (around 50$).
Note that while I use it and found it usefull in order to raise some issues and as a learning tool, I am still looking for other tools as well.
There is a lot to learn on this tricky subject (un)fortunaltely.





相关问题
Export tables from SQL Server to be imported to Oracle 10g

I m trying to export some tables from SQL Server 2005 and then create those tables and populate them in Oracle. I have about 10 tables, varying from 4 columns up to 25. I m not using any constraints/...

SQL server: Can NT accounts be mapped to SQL server accounts

In our database we have an SQL server account that has the correct roles to access some of the databases. We are now switching to windows authentication and I was wondering if we can create a NT user ...

SQL Server 2000, ADO 2.8, VB6

How to determine if a Transaction is active i.e. before issuing Begin Transaction I want to ensure that no previous transaction are open.. the platform is VB6, MS-SQL Server 2000 and ADO 2.8

热门标签