2012年11月14日水曜日

70-432 - TS: Microsoft SQL Server 2008, Implementation and Maintenance

MCTS 問題1 / 10   REF:70-432.18730


あなたは、社内のデータベース管理者です。会社のネットワークを保護するために、ネットワークにはファイアウォールが設置されています。あなたはSQL Server 2005 Server からSQL Server 2008へのアップグレードを実行しようとしました。しかしアップグレードは失敗し、以下のエラーメッセージが表示されました。

SQL Server Setup could not connect to the database service for server configuration.

あなたは、このエラーメッセージが表示されることなくアップグレードを完了できるようにする必要があります。

この場合、どうすればいいですか。









解説:

「TCP ポート 1433 を使用しているプロセスを停止してから SQL Server セットアップを実行する」が正解です。このシナリオで表示されたエラーメッセージは、SQL Server 2008 へのアップグレード実行中にTCP ポート1433が使用できない場合に表示されます。SQL Server のアップグレードを正常に完了するには、TCP ポート 1433 を使用しているプロセスを終了し、SQL Server セットアップを実行します。エラーメッセージの詳細を見るには、セットアップログファイルを確認します。 SQL Server 2008では、セットアップログファイルは<ドライブ名>:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\LOG\ フォルダとそのサブフォルダに格納されています。 SQL Serverセットアップの実行中に発生したエラー情報を含む詳細ログファイルと概要ログファイルは、<ドライブ名>:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\LOG\ フォルダに格納されています。

「ファイアウォールでユーザーデータグラムプロトコル(UDP) ポート1434 を開く」は誤りです。この操作を行っても、エラーメッセージが表示されずにアップグレード処理が完了するとは限りません。UDP ポート1434 を開くのは、SQL Browser サービスを使用する時点である必要があります。SQL Browser サービスを使用すると、ユーザーはポート 1433 以外のポートをリッスンするように設定されたデータベースエンジンインスタンスに接続できるようになります。

「SQL Server 上でMSDTC サービスを有効に設定する」は誤りです。この操作を行っても、エラーメッセージが表示されずにアップグレード処理が完了するとは限りません。MSDTCは、分散トランザクションの管理に使用されます。 アプリケーションにより分散トランザクションでSQL Server リソースを使用する場合は、SQL Server をインストールするサーバーにMSDTC が必要となります。

「SQL Server Browser サービスをSQL Server 上で実行する」は誤りです。この操作を行っても、エラーメッセージが表示されずにアップグレード処理が完了するとは限りません。SQL Server Browser サービスを使用すると、ユーザーはポート 1433 以外のポートをリッスンするように設定されたデータベースエンジンインスタンスに接続できるようになります。

参考資料:

MSDN > MSDN ライブラリ> SQL Server のインストールに関するトラブルシューティング

MCTS 問題1 / 10   REF:70-432.18731


あなたは、社内のデータベース管理者です。ネットワークにはSQL Server 2005 Express の32 ビット版がインストールされているSQL1 という名前のサーバーがあります。SQL1 には、SQL1に保存されているデータベースをバックアップするアプリケーションがあります。あなたはSQL Server 2008 の既定のインスタンスをSQL1 にインストールしようとしています。あなたはアプリケーションがSQL Server 2008 ではサポートされていないDUMP ステートメントを使用していることに気がつきました。

あなたはSQL1 をSQL Server 2008 にアップグレードすることにしました。

SQL1 のアップグレードに使用できる SQL Server 2008 のエディションはどれですか。(次の選択肢から 2 つ選んでください。)









解説:

32 ビット版の SQL Server 2005 Express エディションを SQL Server 2008 にアップグレードする場合に使用できるのは、SQL Server 2008 Express と SQL Server 2008 Express Advance のみです。 SQL Server をアップグレードする前に、SQL Server にインストールされているアプリケーションの階互換性を考慮する必要があります。これはSQL Server 2008 でサポートされていないアプリケーションの特定と使用について有用です。使用しているSQL Server に、SQL Server 2008 でサポートされていない機能を持つアプリケーション(このシナリオではDUMP コマンド) がある場合、アプリケーションを変更するか、SQL Server 2008 を名前付きインスタンスとしてインストールする必要があります。SQL Server 2008 を名前付きインスタンスとしてインストールすると、既定のインスタンスをSQL Server の旧バージョンのまま残すことができ、現在のバージョンでサポートされていない機能がサポートされるようになります。SQL Server の旧バージョンを SQL Server 2008 にアップグレードすると、SQL Server の以前のインスタンスは上書きされ、アップグレード後のコンピュータでは使用できなくなります。

SQL Server 2008 Standard と SQL Server 2008 Enterprise は、32 ビット版の SQL Server 2005 Express エディションを SQL Server 2008 にアップグレードする場合には使用できません。

参考資料:

MSDN > MSDN ライブラリ > サーバーおよびエンタープライズ開発 > SQL Server > SQL Server 2008 > SQL Server オンライン ブック > はじめに > 最初のインストール > SQL Server 2008 へのアップグレード> バージョンとエディションのアップグレード

MSDN > MSDN ライブラリ > サーバーおよびエンタープライズ開発 > SQL Server > SQL Server 2008 > SQL Server オンライン ブック > はじめに > 最初のインストール > SQL Server 2008 へのアップグレード > データベース エンジンのアップグレードに関する注意点

MSDN > MSDN ライブラリ > サーバーおよびエンタープライズ開発 > SQL Server > SQL Server 2008 > SQL Server オンライン ブック > はじめに > 最初のインストール > SQL Server セットアップのユーザー インターフェイス リファレンス > インスタンスの構成

MCTS 問題1 / 10   REF:70-432.18735


あなたは、社内のデータベース管理者です。あなたはSql1 という名前のSQL Server 2008 インスタンスにProd1 という名前の新しいデータベースを作成しました。社内LAN のユーザーがProd1 データベースにアクセスできるようにする必要があります。すべてのクライアントコンピュータはWindows XP Professional を実行しており、またSQL クライアントコンポーネントがインストールされています。また、[SQL Native Client の構成] ですべてのクライアント コンピュータの共有メモリ プロトコルが有効に設定されています。

クライアントがSql1 に接続できるようにするにはどうすればよいですか。(当てはまるものをすべて選択してください。)











解説:

「すべてのクライアントとSql1 に対して名前付きパイププロトコルを有効にする」または「すべてのクライアントに対して TCP/IP プロトコルを有効にする」が正解です。このシナリオでは、クライアントコンピュータは社内LAN のSql1 にアクセスできる必要があります。そのため、Sql1 とクライアント コンピュータの両方で名前付きパイプ プロトコルを有効にする必要があります。名前付きパイププロトコルは主にLAN での使用のために設計されています。このプロトコルを使用すると、メモリの一部がプロセスで使用され、情報が別のプロセスに渡されます。最初のプロセスから渡された情報は、同じコンピュータまたはリモートコンピュータで2 番目のプロセスの入力として使用されます。また、サーバーではTCP/IP プロトコルが既定で有効になっているため、すべてのクライアントでTCP/IP プロトコルを有効にすることができます。そのため、TCP/IP プロトコルを使用することにより、クライアントがSql1 に接続できるようになります。

「すべてのクライアントに対して仮想インターフェイスアダプタ(VIA) プロトコルを有効にする」は誤りです。VIA プロトコルはVIA ハードウェアでしか機能しないため、VIA ハードウェアを使用する構成でのみ使用します。

Sql1 に対してのみ名前付きパイプ プロトコルを有効にする」は誤りです。 このプロトコルはクライアントに対しても有効にする必要があります。

Sql1 の共有メモリ プロトコルを有効にする」は誤りです。共有メモリ プロトコルはLAN 経由のアクセスに対応していません。共有メモリを使用する場合、同じコンピュータで実行されているサーバーインスタンスにしか接続できません。

サーバーで現在有効になっているネットワークプロトコルを表示するには、SQL Server 構成マネージャを開き、[SQL Server ネットワークの構成] を展開します。次の図のように、4 種類のプロトコルとその状態が表示されます。



クライアントネットワークプロトコルは[SQL Native Client の構成] の [クライアント プロトコル] に表示されます。

参考資料:

TechNet > TechNet ライブラリ > SQL Server > SQL Server 2008 > SQL Server オンライン ブック > データベース エンジン > 操作 > 管理 > SQL Server データベースエンジンへの接続> クライアントネットワーク構成> ネットワークプロトコルの選択

TechNet > TechNet ライブラリ > SQL Server > SQL Server 2008 > SQL Server オンライン ブック > データベース エンジン > 操作 > 管理 > SQL Server データベース エンジンへの接続 > サーバー ネットワークの構成 > SQL Server の既定のネットワーク構成

MCTS 問題1 / 10   REF:70-432.18736


あなたは、社内のデータベース管理者です。ネットワークにはSQL Server 2008 のインスタンスがあります。あなたはSQL Server サービスにより既定のインスタンスのため使用されるドメインユーザーアカウントを設定しました。数日後、あなたはSQL Server サービスを起動できないことに気がつきました。調査の結果、ドメインアカウントのパスワードの有効期限が切れていることが判明しました。

今後このような問題が発生しないようにするため、あなたはSQL Server サービスで使用する新しいユーザーアカウントを作成しました。この新しいアカウントのパスワードには有効期限がありません。

SQL Server サービスが正常に起動できるようにするには、次に何をすればよいですか。









解説:

「新しいユーザーアカウントにサービスとしてログオンする権限を与える」が正解です。既定のインスタンスのSQL Server サービスアカウントが正常に起動するには、サービスとしてログオンする権限が必要です。このユーザー権限は、SQL Server セットアップ時にSQL Server サービスに対して設定したユーザーアカウントには自動的に与えられています。SQL Server サービスで使用するユーザー アカウントを新しく設定する場合、このユーザー権限を新しいユーザーアカウントに与える必要があります。 SQL Server サービスで使用するユーザー アカウントにこのユーザー権限がない場合、「ログオンに失敗したため、サービスを開始できませんでした。」というメッセージが表示されます。

新しいユーザーアカウントには、オペレーティングシステムの一部として機能する権限、ローカルログオンする権限、認証後にクライアントを偽装する権限のいずれも与えないでください。これらの権限を使用しても、SQL Server サービスは正常には起動しません。既定のインスタンスのSQL Server サービスが正常に起動するには、サービスとしてログオンする権限が必要です。オペレーティングシステムの一部として機能する権限を使用すると、認証なしで任意のユーザーを偽装することができ、当該ユーザーがアクセスできるローカルリソースにアクセスできるようになります。ローカルログオンする権限を使用すると、この設定が有効になっているコンピュータにインタラクティブにログオンできるユーザーを決定できます。認証後にクライアントを偽装する権限を使用すると、他のアカウントの偽装を許可するアカウントを決定できます。

参考資料:

MSDN > MSDN ライブラリ > サーバーおよびエンタープライズ開発> SQL Server > SQL Server 2008 > SQL Server オンライン ブック > はじめに > 最初のインストール > SQL Server のインストール計画> Windows サービスアカウントの設定

TechNet > TechNet ライブラリ > SQL Server > SQL Server 2008 > SQL Server オンライン ブック > データベース エンジン > 操作 > 管理 > 管理方法に関するトピック > サービスの管理の操作方法に関するトピック > サービスの管理方法に関するトピック (SQL Server 構成マネージャ) > SQL Server で使用されるアカウントのパスワードを変更する方法

MCTS 問題1 / 10   REF:70-432.18737


あなたは、社内のデータベース管理者です。あなたはネットワークにSQL Server 2008コンピュータをインストールしました。あなたはSQL Server サービスが他のネットワークサービスと相互通信できるようにしようと考えています。

この目的のために推奨されるアカウントの種類はどれですか。









解説:

「SQL Server サービスに対してドメインユーザーアカウントを設定する」が正解です。SQL Server にインストールされたサービスが正常に機能するには、各サービスがユーザー アカウントと関連付けられている必要があります。SQL Server がビルトイン システム アカウントまたはドメイン ユーザー アカウントを使用するように設定することができます。ドメインユーザーアカウントは、SQL Server サービスによるネットワークサービスの操作やネットワークリソース(共有フォルダやファイルサーバーなど) へのアクセスが必要な場合に推奨されます。また、SQL Server サービスが他のSQL Server コンピュータへのリンクサーバー接続を使用している場合についても、ドメインユーザーアカウントが推奨されます。

「SQL Server に対してネットワークサービスアカウントを設定する」は誤りです。ネットワークサービスアカウントでもこのシナリオの目的は達成できますが、このネットワークサービスアカウントは共有可能なため推奨されません。

「SQL Server に対してローカルユーザーアカウントまたはローカルサービスアカウントを設定する」は誤りです。ローカルサービスアカウントはWindows のビルトインアカウントです。このアカウントにはUsers グループのメンバと同じ特権があります。ローカルサービスアカウントを使用するサービスは、ネットワークリソースへのアクセスに資格情報を使用しません。ローカルサービスアカウントはSQL Server サービスとSQL Server エージェントサービスに対しては設定できません。ローカルサービスアカウントや管理者権限がないローカルユーザーアカウントが推奨されるのは、サーバーがドメインのメンバでない場合(境界ネットワークにインストールされたサーバーなど)、またはサービスがネットワークリソースへのアクセスを必要としない場合です。

参考資料:

MSDN > MSDN ライブラリ > サーバーおよびエンタープライズ開発> SQL Server > SQL Server 2008 > SQL Server オンライン ブック > はじめに > 最初のインストール > SQL Server のインストール計画> Windows サービスアカウントの設定

TechNet > TechNet ライブラリ > SQL Server > SQL Server 2008 > SQL Server オンライン ブック > はじめに > 最初のインストール > SQL Server のインストール計画 > Windows サービス アカウントの設定

MCTS 問題1 / 10   REF:70-432.18738


あなたは SQL Server 2008 の既定のインスタンスがインストールされている SQL Server 2008 コンピュータを管理しています。あなたはサーバーのデータベースエンジンとNTFS ファイルシステムを統合しようと考えています。あなたはサーバーでFILESTREAM を有効にしました。あなたはTransact-SQL およびWin32 ストリームアクセスに対してFILESTREAM を有効にする必要があります。

どのTransact-SQL コードを実行すればよいですか。









解説:

次の Transact-SQL コードを実行します。

EXEC sp_configure filestream_access_level, 2

RECONFIGURE


FILESTREAM 機能を使用すると、SQL Server を使用するアプリケーションと NTFS ファイル システムを統合できます。この機能により、varbinary(max) バイナリ ラージ オブジェクト (BLOB) データがファイル システム上のファイルとして保存されます。FILESTREAM を使用するには、データベース エンジンを実行している SQL Server インスタンスで FILESTREAM を有効にする必要があります。FILESTREAM を有効にするには、次の手順を実行します。


  1. SQL Server 構成マネージャを開きます。
  2. [SQL Server サービス] ノードを右クリックして、[開く] オプションを選択します。
  3. FILESTREAM を有効にする SQL Server のインスタンスを右クリックして、[プロパティ] オプションを選択します。
  4. SQL Server の [SQL サーバーのプロパティ] ダイアログボックスで [FILESTREAM] タブをクリックします。
  5. [Transact-SQL アクセスに対して FILESTREAM を有効にする] チェック ボックスをオンにします。
  6. Windows で FILESTREAM データの読み書きを行うには、[ファイル I/O ストリームアクセスに対して FILESTREAM を有効にする] オプションを選択し、[Windows 共有名] フィールドの共有フォルダ名を入力します。
  7. リモートクライアントが共有フォルダに保存された FILESTREAM データにアクセスできるようにするには、[リモートクライアントに FILESTREAM データへのストリームアクセスを許可する] オプションを選択します。
  8. [適用] ボタンをクリックします。
  9. SQL Server Management Studio で [新しいクエリ] ボタンをクリックします。
  10. クエリエディタで次の Transact-SQL を入力し、[実行] ボタンをクリックします。
EXEC sp_configure filestream_access_level, 2

RECONFIGURE


filestream_access_level構成オプションで値を 2 に設定すると、Transact-SQL および Win32 ストリーム アクセスに対して FILESTREAM が有効になります。

次の Transact-SQL コードを実行するのは誤りです。

EXEC sp_configure filestream_access_level, 0

RECONFIGURE


filestream_access_level構成オプションの値を 0 に指定すると、インスタンスで FILESTREAM がサポートされなくなります。

次のTransact-SQL コードを実行するのは誤りです。

EXEC sp_configure filestream_access_level, 1

RECONFIGURE


filestream_access_level構成オプションの値を 1 に指定すると、Transact-SQL アクセスに対してのみ FILESTREAM が有効になります。

次のTransact-SQL コードを実行するのは誤りです。

EXEC sp_configure filestream_access_level, 3

RECONFIGURE


filestream_access_level構成オプションの値として 3 は有効ではありません。

参考資料:

MSDN > MSDN ライブラリ > サーバーおよびエンタープライズ開発 > SQL Server > SQL Server 2008 > SQL Server オンライン ブック > データベース エンジン > 操作 > 管理 > サーバーの管理 > サーバー構成オプションの設定 > FILESTREAM アクセスレベル

MSDN > MSDN ライブラリ > サーバーおよびエンタープライズ開発 > SQL Server > SQL Server 2008 > SQL Server オンライン ブック > データベース エンジン > 開発 > FILESTREAM ストレージの設計と実装 > FILESTREAM の設計と実装方法に関するトピック > FILESTREAM を有効にする方法

MCTS 問題1 / 10   REF:70-432.18739


あなたは社内の SQL 管理者です。あなたは数台の SQL Server 2008 コンピュータを複数の国にまたがって展開しました。あなたはSQLReport という名前の SQL Server 2008 コンピュータで SQL Server Reporting Services (SSRS) を有効にしました。

あなたはアーカイブ戦略を策定する必要があります。SQLReport は何千件ものレポートを管理しています。あなたは次の要件に従ってレポートを管理する必要があります。

  • アーカイブされたすべてのレポートはD:\Reports フォルダに保存する必要がある。
  • アーカイブされたレポートごとに、1 人のユーザーがアーカイブされたレポートの完全な対話型のコピーにアクセスできるようにする必要がある。
  • アーカイブされたレポートの配信は自動化する必要がある。
この場合、どうすればいいですか。(当てはまるものをすべて選択してください。)









解説:

各レポートに対して、ファイル共有配信を使用するサブスクリプションと、電子メール配信を使用するサブスクリプションを作成します。ファイル共有配信を使用するサブスクリプションを使用すると、アーカイブされたすべてのレポートをD:\Reports フォルダに保存できます。ただし、このようなレポートは静的であり、すべてのレポートの対話型機能にアクセスできるわけではありません。アーカイブされたレポートの完全な対話型のコピーにユーザーがアクセスできるようにするには、電子メール配信を使用するサブスクリプションレポートを電子メールで配信する必要があります。

「各レポートに対して、レポートをファイルとして保存するサブスクリプションを作成する」は誤りです。この方法は、アーカイブが必要なレポートの数が少ない場合のみ使用します。

「[レポート履歴] 機能を使用する」は誤りです。 これは、レポートを実行するたびにレポート サーバーのデータベースでレポートの履歴コピーを作成する内部SSRS 機能です。

参考資料:

TechNet > TechNet ライブラリ > SQL Server > SQL Server 2008 > SQL Server オンライン ブック > Reporting Services > 開発> レポートのデザインと実装> レポートデザイナを使用したレポートのデザインと実装> レポートの表示と保存> レポートの保存

TechNet > TechNet ライブラリ > SQL Server > SQL Server 2008 > SQL Server オンライン ブック > Reporting Services > 操作 > 管理 > サブスクリプションと配信 > Reporting Services でのファイル共有の配信

MCTS 問題1 / 10   REF:70-432.18740


あなたは社内の SQL 管理者です。SQL3 という名前の SQL Server 2008 コンピュータで、SSRS が SharePoint 統合モードで実行されています。

SharePoint サービスは使用していないため、会社は SharePoint サービスの使用をやめることを決定しました。あなたはSSRS がネイティブモードを使用し、引き続きすべてのSSRS コンテンツにアクセスできるようにする必要があります。

あなたはSQL Reporting Service 構成ツールを起動し、SSRS がネイティブモードを使用するよう設定しました。あなたはプロセスを完了する必要があります。

実行する必要がある操作を3 つあげてください。(次の選択肢から3 つ選んでください。)











解説:

コンテンツをSQL3 に再パブリッシュし、SQL3 でアイテムや操作へのアクセスを許可するロールを割り当て、サブスクリプションとスケジュールが設定された操作を再定義します。以前のコンテンツすべてにアクセスできるようにした上でネイティブモードに切り替えるには、これらの操作がすべて必要です。

「SharePoint 統合モードのデータのレポート履歴をSQL3 で再作成する」は誤りです。SharePoint 統合モードからネイティブ モードに切り替える場合、情報の継承や再作成はできません。

SQL3 が SharePoint コンテンツを参照するようにする」は誤りです。 SQL Server 2008 SSRS コンピュータはSharePoint コンテンツの場所を参照できません。コンテンツはSSRS サーバーで再パブリッシュする必要があります。

ネイティブモードは、SSRS 内からレポートコンテンツへのアクセスと管理を行う場合に使用します。ネイティブモードでのSSRS のバージョン履歴は[レポート履歴] 機能で表示できます。SharePoint 統合モードでの SSRS のバージョン履歴は SharePoint 内から表示できます。

SharePoint 統合モードは、SharePoint 内からレポート コンテンツへのアクセスと管理を行う場合に使用します。SharePoint 統合モードでの SSRS のバージョン履歴は SharePoint アプリケーション内から表示できます。

参考資料:

TechNet > TechNet ライブラリ > SQL Server > SQL Server 2008 > SQL Server オンライン ブック > はじめに > 最初のインストール > SQL Server 2008 の構成 > Reporting Services の構成 > Reporting Services の構成の操作方法に関するトピック > サーバー モードを切り替える方法

MCTS 問題1 / 10   REF:70-432.18741


あなたは社内の SQL 管理者です。あなたはSQL1 およびSQL2 という名前の 2 台の SQL Server 2008 コンピュータをネットワークに導入しました。

あなたはSSRS を展開し、アドホックレポートとスケジュールされたレポートの両方を使用できるようにする必要があります。この展開により、SSRS のパフォーマンスを最大限にする必要があります。

どのようにSSRS を展開する必要がありますか。









解説:

「リモート SSRS カタログがある複数の SSRS サーバーを展開する」が正解です。スケールアウトされたSSRS ソリューションでは、レポート用に複数のサーバーを使用できます。複数のSSRS サーバーを展開することにより、SSRS のパフォーマンスを最大限にすることができます。さらに、このSSRS の展開では、SQL Server のパフォーマンスへの影響が最小限に抑えられます。

「SSRS を現在のSQL Server 2008 コンピュータのいずれかで展開する」は誤りです。この操作ではSSRS のパフォーマンスが最大限になりません。また、定義されたデータベースのパフォーマンスが逆に低下します。

「ローカルSSRS カタログがある1 台のSSRS サーバーを展開する」は誤りです。この操作ではSSRS のパフォーマンスが最大限になりません。ローカルカタログを使用する場合、カタログにより一部のリソースが消費されます。さらに、SSRS サーバー1 台だけではSSRS のパフォーマンスは最大限にはなりません。この展開はスケールアップソリューションの場合に適用します。スケールアップソリューションでは一般的に、最大限のリソース(最大量のRAM とCPU リソースなど) を備えたサーバーを1 台使用します。

「リモートSSRS カタログがある1 台のSSRS サーバーを展開する」は誤りです。リモートSSRS カタログを使用するとSSRS ソリューションのパフォーマンスは向上しますが、SSRS サーバー1 台だけではSSRS のパフォーマンスは最大限にはなりません。スケールアップソリューションでは一般的に、最大限のリソース(最大量のRAM とCPU リソースなど) を備えたサーバーを1 台使用します。

SSRS を展開する場合、スケールアップ SSRS ソリューションとスケールアウト SSRS ソリューションのどちらが最適であるか考慮する必要があります。SSRS は SQL Server データベースと同じサーバーに展開することもできますが、パフォーマンスの問題が発生する場合があります。特に挿入操作を多数実行するアプリケーションがある場合にこの傾向が顕著です。SQL Server データベースとアプリケーションのパフォーマンスの問題を最小限に抑えるには、SSRS を SQL Server インスタンスとは別のコンピュータに配置する必要があります。

参考資料:

TechNet Home > Product & Technologies > SQL Server TechCenter Home > SQL Server 2005 > Planning for Scalability and Performance with Reporting Services (英語)

MCTS 問題1 / 10   REF:70-432.18742


あなたは NetFx という名前の玩具メーカーのデータベース管理者です。同社では製品関連のすべてのデータをNetfx_data という名前のデータベースに保存しています。このデータベースはServer1 という名前のSQL Server 2008 サーバーにあります。このデータベースにはProduct_details という名前のテーブルがあり、同社が製造しているすべての製品の詳細情報が記録されています。このテーブルのProd_desc 列には、各製品の簡単な説明が記録されています。この列はvarchar(300) と定義されています。

ユーザーは次のようなSQL ステートメントを使用してProduct_details テーブルに対するクエリを実行します。

SELECT Prod_name, Prod_id, Prod_desc

FROM Product_details

WHERE CONTAINS (Prod_desc, ' " Blue Toy" ');


あなたはこのクエリのパフォーマンスを最適水準にする必要があります。

この目的を達成するにはどうすればよいですか。











解説:

Prod_desc 列にフルテキスト インデックスを作成する」が正解です。フルテキストインデックスは、列に対してキーワード検索を行う場合に作成する必要があります。このシナリオでは、ユーザーはキーワードを指定してProduct_details テーブルのデータを検索します。フルテキストインデックスはキーワードベースのクエリで使用するためのものです。フルテキストインデックスはデータ型がcharvarcharnvarcharvarbinary(max) のいずれかである列で作成できます。 フルテキスト インデックスは数値型の列では作成できません。

Prod_desc 列にクラスタ化インデックスを作成する」は誤りです。クラスタ化インデックスでクエリのパフォーマンスが向上するのは列の値が一意である場合のみです。varchar データ型で最大 300 文字の列にクラスタ化インデックスを設定しても、インデックスでデータを選択できるようにはなりません。クラスタ化インデックスは行を一意に特定するための列に対して作成する必要があります。

「Prod_desc 列に非クラスタ化インデックスを作成する」は誤りです。クラスタ化インデックスと同様に、列に一意でない値が多数含まれている場合、非クラスタ化インデックスでデータを選択することはできません。非クラスタ化インデックスは列に番号などの一意の値が格納されている場合に有効です。非クラスタ化インデックスは、クラスタ化インデックスが設定されていない列に作成する必要があります。

Prod_name 列にクラスタ化インデックスを作成する」は誤りです。このシナリオのクエリでは、WHERE 句に Prod_name 列ではなく Prod_desc 列が使用されています。 Prod_name 列にクラスタ化インデックスを作成しても、クエリのパフォーマンスに影響はありません。

Prod_name 列と Prod_id 列を含むインデックス付きビューを作成する」は誤りです。この2 つの列にインデックス付きビューを作成しても、クエリのパフォーマンスに影響はありません。インデックス付きビューはフルテキスト検索では使用しません。このシナリオでは、Prod_desc 列にフルテキスト インデックスを作成するとパフォーマンスが向上します。

参考資料:

TechNet > TechNet ライブラリ > フルテキスト検索の概要

TechNet > TechNet ライブラリ > SQL Server > SQL Server 2008 > SQL Server オンライン ブック > データベース エンジン > 開発 > データのクエリと変更 > フルテキスト検索 > フルテキスト検索を使用した SQL Server へのクエリ > サポートされるクエリ用語の形式 > 特定の語または句 (単純語句) の検索

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。