データベースに関する注意点
Notification Services のインスタンスを配置すると、Microsoft SQL Server Notification Services によってデータベースが作成されます。インスタンス構成およびアプリケーション定義でデータベースのプロパティを定義する以外、データベースを定義することはありませんが、最適なパフォーマンスを得るには、データベース エンジンを正しく構成する必要があります。データベース エンジンを構成する場合は、次のガイドラインを使用します。
データベースの推奨構成
最適なパフォーマンス、セキュリティ、および復旧性を実現するために、Notification Services データベースに対して以下の設定をお勧めします。
ログ ファイル
イベントと通知の処理により、ログ ファイルは非常に頻繁に使用されます。ログ ファイルがこのように頻繁に使用されることが原因で、他の操作の読み込み時間と書き込み時間が減少し、システム全体のパフォーマンスが低下する可能性があります。パフォーマンスを最適化するには、インスタンス データベースとアプリケーション データベースを定義するときに専用の物理ディスクにログ ファイルを配置します。
tempdb
Notification Services は tempdb データベースを頻繁に使用します。たとえば、イベントがサブスクリプションと一致するたびに、SQL Server は一時テーブルを作成します。tempdb は重要であり頻繁に使用されるので、このデータベースに適切な初期サイズを定義してサイズ変更を最低限に抑えること、および独立した物理ディスクにこのデータベースを格納してリソースの競合を減らすことが重要になります。
tempdb データベースは、SQL Server が起動するたびに初期サイズで再作成されます。自動拡張処理はデータベースが通常の操作中に使用するよりも多くのシステム リソースを使用するので、tempdb の初期サイズが小さすぎ、データベースの自動拡張が設定されていると、システムのパフォーマンスが低下する可能性があります。データベースを変更して、tempdb の初期サイズを増加し、自動拡張の割合を高くすることにより、このオーバーヘッドを回避できます。
詳細については、「システム データベース」を参照してください。
インデックス
Notification Services の最適なパフォーマンスを得るには、インデックスが重要です。まず、インデックスは結合のパフォーマンスを大幅に向上します。また、イベントとサブスクリプションが一致した後に、他のテーブルからデータが取得され、実際の通知が配信指示と共に生成されます。インデックスは、SQL Server がこのデータを高速に取得するのに役立つことがあります。
Notification Services データベースを作成するときは、ほとんどの場合、テーブルのインデックスを ADF で定義します。ただし、新たなインデックスを追加することにより、このようなクエリのパフォーマンスを向上できることがあります。
追加のインデックスを定義するには、ADF で定義されている Transact-SQL コードを調べ、独自のインデックスを作成するか、または SQL Server データベース エンジン チューニング アドバイザが推奨するインデックスを使用します。
詳細については、「インデックスの設計」を参照してください。
データベース復旧モデル
データが失われないようにするには、完全復旧モデルを使用して、すべての Notification Services データベースを頻繁にバックアップします。この結果、データベースの完全なバックアップを定期的に作成でき、その後必要に応じて差分バックアップやトランザクション ログ バックアップを作成できます。
トランザクション ログが最大サイズに満たないようにするには、データベース ファイルとログ ファイルを頻繁に、定期的にバックアップします。データベース バックアップの詳細については、「Notification Services データベースと操作ファイルのバックアップ」および「SQL Server でのデータベースのバックアップおよび復元」を参照してください。
また、Microsoft Windows パフォーマンス ツールの 1 つであるシステム モニタを使用して、データベース ファイルとトランザクション ログ ファイルを監視できます。たとえば SQL Server: Databases パフォーマンス オブジェクトには、トランザクション ログがどの程度までいっぱいになっているかを監視するための、Percent Log Used パフォーマンス カウンタが含まれています。SQL Server パフォーマンス オブジェクトの詳細については、「SQL Server オブジェクトの使用」を参照してください。
ユーザー接続
接続は重要なリソースです。Notification Services インスタンスおよびアプリケーションのデータは SQL Server データベースに格納されるため、イベントが処理されると、アプリケーションは SQL Server にデータを要求し、データを受信します。使用できる接続が十分にない場合は、エラーが発生することがあります。
[同時ユーザー接続の最大数] の値は 0 (ゼロ) のままにしておくことができます。そうすることによって、接続数は SQL Server の最大接続数によってのみ制限されるようになります。詳細については、「User Connections オプション」を参照してください。
データベース認証
Notification Services は、SQL Server 認証と Windows 認証をサポートします。SQL Server 認証を必要とする特定の機能はありません。Windows 認証は、セキュリティで保護された認証、パスワードの暗号化、監査、パスワードの有効期限、パスワードの長さの最小値、および複数回の無効ログイン要求後のアカウントのロックアウトなど、大部分のアプリケーションで SQL Server 認証を上回る利点を得られます。
このような理由から、Windows 認証を使用することを強くお勧めします。セキュリティ構成の詳細については、「Notification Services のセキュリティの設定」を参照してください。
SQL Server 認証を使用する場合は、Notification Services エンジンがデータベース エンジンに接続するときに使用する SQL Server ユーザー名とパスワードを指定する必要があります。詳細については、「Notification Services のインスタンスの SQL Server 権限の構成」を参照してください。
参照
概念
データベース リソースの計画
アプリケーション データベースの定義
インスタンス データベースの定義
Notification Services システムの計画