Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql 针对信息的查询\u架构超时_Tsql_Timeout_Sql Server 2000_Information Schema - Fatal编程技术网

Tsql 针对信息的查询\u架构超时

Tsql 针对信息的查询\u架构超时,tsql,timeout,sql-server-2000,information-schema,Tsql,Timeout,Sql Server 2000,Information Schema,我正在使用SQLServer2008ManagementStudio连接到SQLServer2000 use [MyPrettyDb] select top 19 * from information_schema.tables 它工作起来又好又甜又快。但这是: select top 20 * from information_schema.tables 超时停止 超时的原因是什么 请注意,从信息模式中选择计数(*)。表格快速返回;数据库中有334个表。您可能被事务中运行的DDL语句阻止。运

我正在使用SQLServer2008ManagementStudio连接到SQLServer2000

use [MyPrettyDb]
select top 19 * from information_schema.tables
它工作起来又好又甜又快。但这是:

select top 20 * from information_schema.tables
超时停止

超时的原因是什么


请注意,从信息模式中选择计数(*)。表格快速返回;数据库中有334个表。

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

您可以通过运行下面的脚本来复制该脚本

USE TEMPDB
GO

BEGIN TRAN
CREATE tABLE ttt(id int)
在另一个会话中,运行

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

SELECT  * FROM INFORMATION_SCHEMA.TABLES --will not work

我自己解决了这个问题。 这个问题只在Windows 2008中出现。和32/64份确认书

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

正如我所理解的,默认情况下它使用64版本。但它与远程计算机上的32版本不兼容。这就是为什么我有奇怪的行为


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

您是否比较了这两种情况的执行计划?为什么要从目录视图中随机选择19或20行?也许你可以考虑通过< <代码>添加一个<代码>命令来给你的查询提供一些意义。这是不可能的。通过timeoutOK查询计划。从information_schema.tables中选择top 19*(按表排序)_name-效果很好。但是,从信息中选择前20个*按表排序按表名称-按时间输出我可以添加的内容:硬件没有问题。大量的磁盘空间和54%的内存使用率。