SQL Server 2005上的架构信息查询确实很慢

时间:2010-08-24 17:19:59

标签: sql sql-server-2005

我有一个包含大量表的数据库,大约3500个,以及需要访问表列表的应用程序。

在特定服务器上,这需要2.5分钟才能返回。

EXEC sp_tables @table_type="'TABLE'"

我知道有更快的方法可以做到这一点,但遗憾的是我无法修改应用程序,需要找到一种方法将其推送到30秒以下,以便应用程序不会抛出超时错误。

因此。我可以做些什么来提高sql server中sp的性能?

3 个答案:

答案 0 :(得分:0)

如果您没有在用户帐户上设置GRANT VIEW DEFINITION权限,我看到这些存储过程运行缓慢。根据我的阅读,这将导致安全检查发生,从而减慢查询速度。

也许SQL大师可以评论为什么,如果这对您的问题有帮助。

答案 1 :(得分:0)

嗯,sp_tables是系统代码,不能更改(可以在SQL Server 2000中解决,而不是SQL Server 2005 +)

您的选择

  1. 更改SQL
  2. 更改命令超时
  3. 更大的服务器
  4. 你已经对明显的解决方案说“不”......

答案 2 :(得分:0)

您需要像其他任何性能问题一样处理此问题。 为什么这么慢?即,它阻止在哪里?磁盘IO?中央处理器?网络?锁争?科学方法是使用Waits and Queues或更新的SQL 2008 equivalent Troubleshooting Performance Problems in SQL Server 2008等方法。懒惰的方法是只检查sys.dm_exec_requests中执行wait_type调用的会话中的wait_timewait_resourcesp_tables列。一旦你发现阻止执行的,你就可以继续进行。

如果我冒昧地猜测,你会发现争用是原因:其他会话只是锁定表的元数据,从而阻止sp_tables的执行,这必须等到它前面的所有操作完成。