对INFORMATION_SCHEMA的查询超时

时间:2012-07-16 21:07:57

标签: tsql timeout sql-server-2000 information-schema

我正在使用SQL Server 2008 Management Studio连接到SQL Server 2000。

use [MyPrettyDb]
select top 19 * from information_schema.tables

它工作得很好,甜蜜而且快速。但是这个:

select top 20 * from information_schema.tables

超时停止。

超时的原因是什么?

P.S。 select count(*) from information_schema.tables快速返回;数据库中有334个表。

2 个答案:

答案 0 :(得分:2)

您可能被事务中运行的DDL语句阻止。运行DBCC OPENTRANsp_lock以确定哪个会话对此负责。

您可以通过运行以下脚本来重现这一点。

USE TEMPDB
GO

BEGIN TRAN
CREATE tABLE ttt(id int)

在另一个会话中,RUN

SELECT TOP 5 * FROM INFORMATION_SCHEMA.TABLES --will work

SELECT  * FROM INFORMATION_SCHEMA.TABLES --will not work

答案 1 :(得分:0)

我已经解决了这个问题。 问题仅出在Windows 2008中。而32/64则会出现问题。

Windows 2008中有两个odbc驱动程序: 32:在System32文件夹(或系统)中 64:在sys SystemWOW64中

据我所知,它默认使用64版本。但它与远程机器上的32版本不兼容。这就是为什么我有奇怪的行为。

运行odbc wizzard friom 32文件夹,它神奇地变得正常工作。