我正在使用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个表。
答案 0 :(得分:2)
您可能被事务中运行的DDL语句阻止。运行DBCC OPENTRAN
或sp_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文件夹,它神奇地变得正常工作。