2

SQL Server 2008ManagementStudioを使用してSQLServer2000に接続しています。

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

それは素晴らしく、甘くて迅速に機能します。でも、これ:

select top 20 * from information_schema.tables

タイムアウトで停止します。

タイムアウトの理由は何ですか?

PSselect count(*) from information_schema.tablesはすぐに戻ります。データベースには334個のテーブルがあります。

4

2 に答える 2

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
于 2012-07-23T23:55:02.190 に答える
0

私はこの問題を自分で解決しました。この問題はWindows2008でのみ発生します。32/64の競合。

Windows 2008には2つのodbcドライバーがあります。32:System32フォルダー(またはシステム)内64:sysSystemWOW64内

私がデフォルトで理解したように、64バージョンを使用しています。ただし、リモートマシンの32バージョンとは互換性がありません。だから私は奇妙な行動をしました。

odbc wizzard friom 32フォルダーを実行すると、魔法のように正しく動作するようになります。

于 2012-07-25T12:01:48.390 に答える