web-dev-qa-db-ja.com

時間がかかりすぎるSQL Server Brokerを有効にする

Microsoft SQL Server 2005を使用しており、これらのT-SQLでデータベースのBrokerを有効にしようとしました。

 SELECT name, is_broker_enabled FROM sys.databases 
 -- checking its status 0 in my case
 ALTER DATABASE myDatabase SET ENABLE_BROKER

Alter Databaseの処理には時間がかかります。現在、30分以上経過しており、まだ実行中です。他の何かを待っているのか、またはすべてのメッセージ、コントラクト、キュー、Service Brokerの下のサービスを削除するなど、最初に何かをクリーンアップする必要があるのか​​わかりませんか?

123
David.Chu.ca

http://rusanu.com/2006/01/30/how-long-should-i-expect-alter-databse-set-enable_broker-to-run/

alter database [<dbname>] set enable_broker with rollback immediate;
247
Remus Rusanu

以下のコードを使用すると、Service Brokerキューをすぐに有効にできます

ALTER DATABASE Database_Name SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
19
Rahul Singi
USE master;
GO
ALTER DATABASE Database_Name
    SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
GO
USE Database_Name;
GO
10
Irfanullah

SQL Server Service Brokerを有効にするには、データベースロックが必要です。 SQL Serverエージェントを停止してから、次を実行します。

USE master ;
GO

ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ;
GO

[MyDatabase]を問題のデータベースの名前に変更してから、SQL Serverエージェントを起動します。

Service Brokerが有効または無効になっているすべてのデータベースを表示する場合は、たとえばsys.databasesをクエリします。

SELECT
    name, database_id, is_broker_enabled
FROM sys.databases
2
Sean Perkins

実際、私はNEW_BROKERを使用することを好みます。それはすべての場合にうまく機能しています:

ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;
1
Mike Darwish

私の場合、デバッグモードのように、WebプロジェクトでSQLデータベースを使用していました。したがって、すべての接続を閉じたとき、それはうまく実行されました。

0
Jamshaid Kamran