• 締切済み

実行プランの確認

お世話になります。 SQL Server 2008 でテーブルを作成し、 クエリの実行プランを表示してみました。 条件に、プライマリーキー以外の項目を指定しても クラスターインデックススキャンになります。 私の記憶違いかと疑って、 SQL Server 2005 に同様のテーブルを作成し、 実行プランを表示したところ、 テーブルスキャンとなりました。 SQL Server 2008 から、必ずクラスターインデックス となったのでしょうか?

みんなの回答

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

SQL Server 2005/2008でその点には特に変更はないはずですが、可能なら「SQL Server 2005で主キーにクラスタインデックスが付与されているケースで、Cluster Index ScanではなくTable Scanが選択される例」を示していただけると助かります。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • osqlからのsql実行方法について

    Windows20003のSQL Server2000の環境で、あるテーブルのインデックスを指定して統計情報を更新する処理のバッチ化を考えており、osqlを使用すれば可能な所までは調査出来たのですが、、、 osqlから、SQL文をオプション"Q"にて実行する場合、例えばテーブル名 or インデックス名に「~」等の特殊文字を含む場合、そのまま実行するとシンタックスエラーとなり実行出来ませんでした。 テーブル名 or インデックス名に「~」等の特殊文字を含む場合の実行方法をどなたか御教授御願い出来ないでしょうか。。。 因みに、オプション"i"でsqlファイルを作成して実行しても、sql文に特殊文字があった場合はシンタックスエラーとなりました。 Query Analyzerでは、インデックス名を「"」囲み実行すれば、正常に処理される事は確認済みです。 【実行方法】 osql -E -S <サーバ名> -d <DB名> -Q "UPDATE STATISTICS <テーブル名> <インデックス名> WITH FULLSCAN"

  • SQL Server 2008 のメンテナンス プランの実行について

    SQL Server 2008メンテナンスプランについての質問です。 現在SQL Server 2008 Workgroup Editionを使用しています。 メンテナンスプランでデータベースの整合性確認、インデックスの再構成、バックアップ等を行い完了したら戻り値を取得して 別の処理を行いたいのですが作成したメンテナンスプランをバッチ等で実行することは出来ないでしょうか SP1を適用してメンテナンスプラン自体は使用できるようにはなりました。

  • バッチからメンテナンスプランを実行させるには?

    環境:SQL Server 2005 バッチからSQL Server のメンテナンスプランを 実行して、DBのバックアップを指定のフォルダに格納するという 処理(プラン名:BackUpMaintenancePlan)なのですが、 「dtexec /Ser サーバー名 /U ユーザー名 /P パスワード /SQ "\Maintenance Plans\BackUpMaintenancePlan"」 と記載したバッチ処理をたたくと... ----------------------------------------------------------- 開始: 12:57:55 DTExec: パッケージの実行から返されました DTSER_SUCCESS (0)。 開始: 12:57:55 完了: 12:58:05 経過時間: 10.516 秒 ----------------------------------------------------------- コマンドプロンプトにこのように表示されますが バックアップファイルが生成されません。 SQL Serverのメンテナンスプランを直接実行すると正常に バックアップファイルは格納されているので バッチ処理の書き方に問題がありそうな気がします。 どなたかお分かりになる方がいらっしゃいましたら アドバイス等宜しくお願い致します。

  • SQL Server2008でリンクサーバからテーブルを作成する方法

    SQL Server2008で、リンクサーバからテーブル(属性も含み)作成を行うには どのようにするのでしょうか (リンクサーバの設定は行えましたが、SQL Serverの知識はほとんどありません・・・) into テーブル名 FROM リンクサーバ(テーブル) というので テーブル属性も含めてテーブルを作成できるとの記事はあったの ですが、クエリで実行してもエラーとなってしまいます。 SQL Server2008でSQLを発行するには特別な指定が必要なのでしょうか? (SQLを発行する場所が間違っているのかもですが) 初歩的な質問で申し訳ございません、よろしくお願いします

  • SQL SERVER 2005のメンテナンスプラン実行エラーについて教えてください

    SQL SERVER 2005にてメンテナンスプランよりデータベースバックアップ(完全)を作成し実行をさせるとエラーとなってしまいます。 SQL SERVER エージェントの履歴を見ると下記の内容が表示されていました。 【SQL SERVER エージェントの履歴】 「10/21/2009 15:33:22,DBバックアップ.Subplan_1,エラー,0,SERVER02,DBバックアップ.Subplan_1,(ジョブの結果),,ジョブは失敗しました。 ジョブは ユーザー SERVER02\Administrator によって起動されました。最終実行ステップはステップ 1 (Subplan_1) でした。.,00:00:00,0,0,,,,0 10/21/2009 15:33:22,DBバックアップ.Subplan_1,エラー,1,SERVER02,DBバックアップ.Subplan_1,Subplan_1,,ステップ 1 の実行を開始できません (理由: 行 (1): 構文エラー). ステップは失敗しました。,00:00:00,0,0,,,,0」 他のサーバーで同じようにメンテナンスプランを作成し実行しても問題がありません。(SQL SERVER 2005のバージョン:9.0.3042) 実行エラーを起こすサーバーはディスク障害を起こし復旧後にSQLを再インストールしています。(SQL SERVER 2005のバージョン:9.0.1399) どのようにすれば正常に実行されるのでしょうか? 見づらい内容で申し訳ありませんが、ご教授の程よろしくお願い致します。

  • クエリファイルから外部のクエリファイルを実行する方法

    SQL Server2000です。 DB構築を行うにあたり、インストールで実行するクエリファイルから、 別のクエリファイル(実際にテーブル、ストアドを構築する内容を記述)を実行できる方法がわからず悩んでいます。 a.sql・・・b.sqlやc.sqlを統括するクエリファイル b.sql、c.sql・・・テーブル構成、ストアドを構築するクエリファイル SQL クエリアナライザからa.sqlのクエリファイルを開いて、 クエリ実行するイメージでいます。 a.sqlからb.sqlを呼び出すには、どのような記述をすればよろしいのでしょうか? よろしくお願いします。

  • どうやって実行するの?

    今まで バック:SQL Server フロント:ACCESS2000 でシステム構築を経験してきました。 今までUPDATE文や、INSERT文はACCESS側でクエリを 作り、ODBC経由で実行してきましたが、 上司より、 「SQL-Server上でデータ更新をしてほしい」 といわれました。 この場合、SQL-ServerのどこにUPDATE文を書けば 良いのでしょうか? ACCESSのクエリのデザインビューみたいなので 作成できるのでしょうか? 教えてください。

  • accessでSQL実行時のテーブル名にdbo?

    access2007を使用しています。 テーブルをリンクで参照しているのですが、全てのテーブル名に「dbo_」と付いています。 accessにてSQLを実行する際、 「作成タブ」>「クエリデザイン」>「SQL表示」>SLQ記入>「!ボタン(実行)」 にて実行しています。 SQL記入の際にテーブル名に「dbo_」を入力しなければなりません。 これを無しで実行する方法は無いのでしょうか?

  • ACCESSのクエリ実行について

    ACCESSのクエリを作成しておりますが  ・クエリを「開く」で実行すると固まる  ・クエリを「デザイン」でSQL文表示させてから実行すると固まる  ・クエリを「デザイン」でSQL文表示させてコピーし、   コピーしたSQL文を新規クエリに貼り付け、実行すると正しく動作する 上記現象の場合、考えられる原因はなんでしょうか? 環境はWIN2K、ACCESS97を利用しております。 SQL文は追加クエリ(INSERT文)で、抽出行数は1000行程度です。

  • アクセスのクエリを開く前にマクロを実行できますか?

    フォームやレポートを開く前にマクロを実行できますが、同様のことをクエリを開く前にもする方法はないでしょうか? 具体的には、いくつかのテーブル作成クエリと追加クエリをまとめて行うマクロを実行してから、選択クエリを開きたいのです。 「SQLビューで1行加えるだけ」みたいなのができると助かります。 よろしくお願いします。