• ベストアンサー

インデックスの再構築の意味って何ですか?

SQLServer2000 SP3a Widnows2000Server を使用しています。 今社内のプログラムを見ていて あるテーブルのインデックスの再構築を行う プログラムを発見したのですが、 インデックスの再構築って何なのでしょうか? 全てのテーブルについて再構築するのではなく データベースの中の100ぐらいのテーブルの 中の3つぐらいだけインデックスの再構築を していました。 どんないいことがあるのでしょうか? メリット・デメリット? どなたか何か些細なことでも分かる方 教えて下さい。宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

#1の方も#2の方も再構築の理由になってないような・・・ おそらく定期的に行うようになってるんですよね。 テーブルに更新がかかると、インデックスも同時に更新されます。で、頻繁に更新がかかるようなテーブルですと、インデックスの検索効率が落ちてきてしまいます。 このため、再作成を行うことで、検索効率を元に戻すということを行います。 これがメリットです。 デメリットとしては、再作成を使用中に行うと大変なことになることですかね。インデックスが効かなくなるわけですし。

SEAMOON
質問者

お礼

>テーブルに更新がかかると、インデックスも同時に更新さ>れます。で、頻繁に更新がかかるようなテーブルですと、>インデックスの検索効率が落ちてきてしまいます。 納得いきました。ありがとうございます。

その他の回答 (2)

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.2

インデックスの再構築はデータベース全体の効率向上のために行ないます。 設計時はある予測に基づいてアクセスの多そうなDBにインデックスを張りますがある程度使った実績に基づいてインデックスの再構築を行ない最適化を行ないます。

SEAMOON
質問者

お礼

ふむふむ。回答ありがとうございます。

  • Swordline
  • ベストアンサー率42% (291/688)
回答No.1

インデックスって、「索引」という意味なんです。 インデックスを作ると、検索機能の効率が上がります。 これがメリットですね。 デメリットは、インデックスはディスク容量を減らします。 インデックスするテーブルが多ければ多いだけ消費してしまいます。 するとサーバのディスク容量が足りなくなる可能性があります。 よって、検索を頻繁に行うテーブルのみ、インデックスを作成、構築しているのではないかと。

SEAMOON
質問者

お礼

回答ありがとうございます。

関連するQ&A

  • ファイルサーバ構築について

    ファイルサーバ構築について、ご指南いただければと思います。 現状会社内にNASを導入しているのですが、管理上の限界から全社的なファイルサーバ移行を考えています。そこで社内構築なのかASP等に業務委託した方がいいのか?等の部分で悩んでおります。 社内構築、ASP委託のメリット、デメリットをお教えいただければと思います。 宜しくお願いします。

  • MySQLでFullTextインデックスの再構築

    現在Webアプリを制作しています。 そこで検索機能を作成するにあたり FullTextで全文検索を行う処理を考えています。 Like文を使って検索するより速いらしいのですが、 insert/update文を実行しデータベースにデータを挿入/更新する際 FullTextで全文検索を行う場合だとインデックスを再構築する必要が あるみたいです。 http://melrose.jugem.cc/?eid=323 このインデックスの再構築についてよく分からないのですが、 上記のサイトではインデックスの再構築には REPAIR TABLE [テーブル名] QUICK; を実行とありました。 データの挿入/削除 処理後の検索インデックス修復には innsert 又は update文の直後にREPAIR TABLE [テーブル名] QUICK; を 実行するという事でいいのでしょうか?

    • ベストアンサー
    • MySQL
  • オークションサイト構築について

    近々オークションサイトを構築する予定なのですが、 開発言語やデータベースを何にすべきか迷っています。 言語は私の得意なPHPの予定ですが、同時多数アクセスが予想される オークションサイトでデータベースはPostgreSQLやMySQLでも 大丈夫なのでしょうか。 やはり有償のデータベースが必要ですか? 導入する上での個々のメリット、デメリットを教えて下さい。 またハードウェア面でサーバ(買取)はどのようなサーバ機が 適していますか? どの程度のスペックが必要か見当も付きません。 OS:Linux、WEBサーバ:Apacheで考えています。 ちなみに有名どころのYahoo!オークションやモバオクは どういった環境で構築されているか等も教えて下さい。 何卒よろしくお願い致します。

  • ネットワーク構築

    ネットワークを構築する際に、ルーティングテーブルを作成する時、動的ルートと静的ルートがありますが、単純に考えて動的ルートの方が良いと思うのですが、実際それぞれどうのようなメリットやデメリットがありますか?? またこれらを上手く生かしたネットワークの構築方法を教えてください。

  • SQLテーブルをインデックスしてSELECTを高速

    テーブルのおインデックス項目はSELECTすると検索が早いのですが、 インデックスではない項目をWHEREすると時間がかかります。 そこでテーブルカラム全部をインデックス化することでの メリット、デメリットは何でしょうか?

  • ActiveDirectory(ドメイン)構築のメリット、デメリットに関して

    こんにちは。 先日社内サーバをリプレースしました。 Windows Server 2003 を導入しました。現状単にファイル共有で運用していますが、クライアントの一元管理と言う事で、ActiveDirectory(ドメイン)を構築した方が良いのでは無いかと言う話が出ています。 正直、ActiveDirectory(ドメイン)を構築した際に、メリット、デメリットが判りません。メリットとしてクライアント PC のパスワード等がサーバ側から一元管理出来る程度の認識です。 また、デメリットでもしサーバが起動出来なくなった場合、クライアントPC は起動出来るの??という疑問が有ります。 他にも、メリット、デメリットが有ればアドバイスを頂きたいと思います。もしくは解説されてるサイトをご紹介して頂ければ嬉しく思います。 クライアント PC は約40台程度、全て Windows XP Pro を利用しています。現状ファイル共有で困っていません。

  • インデックスを調べる方法は?

    お世話になっております。 SQL Server2000で任意のテーブルのインデックスを調べたいのですが、 どうやったら良いのでしょうか? EXEC sp_indexes を実行すると、 サーバー '○○' は DATA ACCESS 用に設定されていません。 というエラーになります。

  • データ移行

    システムの再構築でmdb(Access2000)からSQLServer2005とSQLServer2000からSQLServer2005へのデータ移行があります。 データ移行と言いましても、テーブルの構成が変わるため必要な項目と不必要な項目があります。今、考えているのが、一度SQLServer2005へmdbまたは、SQLServer2000と同じテーブルを作成(一時的なテーブル)し、その後、INSERT文で新規テーブルに必要な項目を追加していきたいと思っています。 一時的なワークテーブルを作成する際にmdbからとSQLServer2000からとでい色々な方法があると思うのですが、どの様な方法があり、その方法のメリット・デメリットを知りたいのですが、教えて頂けないでしょうか?よろしくお願いします。

  • ファイルサーバのRAIDの構築について

    ファイルサーバに構築するRAIDについて質問です。 現在、大容量のファイルサーバの構築を考えているのですが、ファイルサーバにはRAID機能を使用することは必須なのでしょうか? また、RAIDを構築するなら、どんな構築方法がお勧めでしょうか? いろいろな参考サイトを見ていると、最低限必要、といったような書かれ方をよくみかけます。 ですが、私はRAIDを構築することのデメリットも気になり、RAIDなしでの構築も考えています。 というのも、以前RAIDを構築していたサーバのマザー側に問題が発生した際、RAIDを構築していたがために、問題ないHDDから直接データを取出すことができないということがありました。 その時に、HDDが故障した際の運用としてはメリットがあるけれども、HDD以外の故障に対してはRAID環境がデメリットであると感じたことがあったからです。 ※RAID1ならHDD単独で認識できることを確認していますが、構築するのであればRAID5で行いたいと考えています なお、RAIDを構築しないことによるバックアップとしては、定期的にNASサーバへバックアップを行い、サーバ障害時にはNASで運用をするということを考えています。 ただ、2TBのHDDを複数個備えたサーバということで、別ドライブ間のデータ移動に時間がかかるだろうという懸念点は把握しています。 以上のことから、以下の質問がございます。 (1)ファイルサーバにRAIDを構築しないことの、上記以外のデメリット (2)少量のHDDでRAIDを構築した場合、HDDを空スロットに増設した際のRAID再構築におけるメリットデメリット  ※いずれ増設するかもしれないのであれば、最初からフルで構築したほうがいいのか? (3)RAID5で構築したサーバのマザーが故障した場合、同じ型のサーバにHDDを接続すれば、データを読み込むことはできるのか? RAIDのメリットデメリットをまとめられた情報はいくつか見つけたのですが、構築環境を決めかねて、こちらで質問をさせていただきました。 皆様のお知恵をお貸しください。 よろしくお願いいたします。

  • ビューにインデックスを設定できませんか?

    SQL Server 2005 EXPRESS を使用しています。 トランザクションのテーブルにマスタを結合して表示するビューを作成しました。 実際に利用する時はトランザクションテーブルの主キーを検索に多用すると予想されるので、該当のフィールドにインデックスを設定したいのですが… Management Studio でインデックスを設定しようとするとエラーになります。 エラーメッセージは インデックス '' の作成に失敗しました。 (Microsoft.SqlServer.Express.Smo) ------------------------------ ADDITIONAL INFORMATION: Transact-SQL ステートメントまたはバッチの実行中に例外が発生しました。 (Microsoft.SqlServer.Express.ConnectionInfo) ------------------------------ ビュー 'View' に インデックス を作成できません。ビューにはスキーマがバインドされていません。 (Microsoft SQL Server, Error: 1939) となっています。まさにメッセージのとおりだとは思うのですが 「ビューにスキーマをバインドする」方法がわかりません。 どなたかご教授いただければ助かります。 よろしくお願いいたします。