• 締切済み

インデックス再構築中のSELECT

インデックスを再構築するジョブを作成し毎日実行しています。 ちょうどその時間にSELECTが実行されて タイムアウトしてしまいました。 再構築中は結果が返ってこないのでしょうか?

みんなの回答

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

インデックス再構築中はテーブルがロックされるため、テーブルにアクセスできなくなります。 (オンライン再構築はEnterprise版のみ可能です)

関連するQ&A

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

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

    • ベストアンサー
    • MySQL
  • SQLテーブルをインデックスしてSELECTを高速

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

  • DATE型カラムのインデックスが効かない

    Oracle初心者です。 以下のような2種類のSQLをSQLPLUSで実行し、 実行計画を取得しました。 end_timeでfilterをかける際に、"TABLE ACCESS FULL"となっており、貼っているインデックスが使われていないことがわかりました。 #これがSQLの遅い主要因と考えています。。。。勘です。 インデックスが活用されていない原因としてはどのようなものが考えられるのでしょうか。 宜しくお願いいたします。 1) set autotrace traceonly select * from t_sample where end_time >= '2009-08-25' and end_time <= '2009-11-26' 2) set autotrace traceonly select * from t_sample where end_time >= to_date('2009-08-25', 'yyyy-mm-dd') and end_time <= to_date('2009-11-26', 'yyyy-mm-dd')

  • Selectの処理速度改善について

    先日、PL/SQLの開発について、こんな質問を受けました。 「SQLを組むさい、処理速度を速めるためにやっていることは?」 と。 で、ちょっと考えて 「Selectなら、Indexを考慮してSelect文を作成し、実行します。 処理時間がかかる場合は、実行計画などをみて、 Select文にヒント句をつけて、処理速度を改善します。」 と答えました。 答えたあと、質問者された方は、なんだかがっかりした感じでしたが、 私の回答は不適切だったのでしょうか? それとも、どういう回答が良かったのでしょうか? よろしくお願いします。

  • 複数のインデックスについて

    以下のようなテーブルで、 ------------------------- テーブル名:hoge カラム1:name(名前) カラム2:age(年齢) カラム3:job(職業) INDEX age(age) ------------------------- 今現在、年齢で検索することが多いため、ageにIndexを張っているのですが、職業でも検索したいと思っています。 (今現在、職業で検索するとIndexが関係ないためか低速です。) この場合、「ALTER TABLE hoge ADD INDEX job(job)」で大丈夫でしょうか? インデックスが良くわかってないのですが、こうすると、今の年齢用のインデックスとは、全く別のインデックスが作成されると思って良いのでしょうか? (年齢のインデックスの下に職業のインデックスが作成され、職業で検索しても、結局、年齢のインデックスをまたぐため低速になる、なんてことは無いのでしょうか?) よろしくお願いします。

    • ベストアンサー
    • MySQL
  • インデックスが無効になっている

    インデックスが無効になっている 皆さん、こんにちわ 今回質問する内容なのですが、SQLServer2005での出来事です。 ある企業のバックアップ処理を毎日行う際、インデックスの再構築を行っているのですが、 33個あるインデックスの内、1つが無効になっていました。 それまで毎日1分かかる処理が、いきなり10分かかるようになってしまいました。 とりあえずインデックスの再編成→再構築を行って事なきを得ましたが・・・ 何が原因なのでしょうか? データ件数は800万件あります。

  • windows7のインデックスが激早から激遅に!

    windows7でSSD使ってます。 以前はインデックスの検索をすると一瞬で結果が出てきたのですが、 ファイル名だけじゃなくて、内部検索も含めようとしたりしているうちに、 1ワードの検索に数分かかるようになってしまいました。 そこで、インデックスの作成対象を狭くして(ただ元々がどの範囲だったか定かではないのですが) 「プロパティのみのインデックスを作成する」に切り替えて、 インデックスの再構築をしましたが、状況がほとんど変わりません。 単純に元の設定に戻せたらと思っているのですが、何かアドバイスあればお願いします!

  • Windows Search のインデックスが壊れ

    環境:Windows 7 Windows 7 の検索機能を有効にしています。インデックスを自動で作成します。ある日、インデックスを確認すると「154,798個のインデックスが作成されました。」と記述されていました。せいじょうにインデックスを作成している証拠です。しかし、実際にファイルを検索してみると、なぜか「インデックスが作成されていないため検索できません」というしゅしのメッセージが表示されます。インデックスを確認すると「69個のインデックスが作成されました。」という表示です。つまりインデックスが一度全部破壊され、そのあと作り直した直後、という状態でした。これが1箇月前くらいから繰り返されています。インデックスを作成してははかいし、また作成して壊す、の繰り返しです。 一度インデックスを「再構築」しましたが、まったく症状は変化しませんでした。一度インデックスを無効にしたあと、再び有効にしましたが、症状は変化しませんでした。 コンピューターの修復から「スタート アップ修復」「Windows メモリ診断」を実行しましたが、不具合は発見されませんでした。 どうすればいいのかわからないため、質問させていただきます。対処法を教えていただけないでしょうか。よろしくお願いいたします。

  • select関数について(winsock)

    こんにちは。 大変お世話になっております。 select関数を用いてタイムアウト処理等を実装したいと思っています。tv_usecはマイクロ秒の精度を持つと記述されていました。以下のような記述を行なうことで、50msたてばタイムアウトされるのでしょうか? selectのtv_usecの精度は1μ秒の精度はあるのでしょうか? struct timeval timeout; timeout.tv_sec=0 timeout.tv_usec=50000 select(0,&fds,NULL,NULL,&timeout) よろしくお願いします。

  • mysqlでSELECTの速度を上げる方法

    以下のようなSQLを発行すると、mysqlの処理時間が非常に多くかかるため、なんとか最適化を行いたいと考えています。 どのような方法があるのか教えていただけませんしょうか。 SELECT user_id,comment,comment_id,date,study_time,study,source FROM data_temp t1 WHERE NOT EXISTS (select comment_id from data t2 where t1.comment_id = t2.comment_id) ■補足 ・dataとdata_tempのテーブル構造は全く同じです。 ・SQLで実現したいことは、両テーブルのcomment_idをキーとして、dataに含まれないdata_tempの差分データを表示させたい。 なお、以下のインデックス作成は行いましたが、結果変わらずでした。 alter table data t1 ADD INDEX_t1 (user_id,comment,comment_id,date,study_time,study,source); alter table data_temp t1 ADD INDEX_t1 (user_id,comment,comment_id,date,study_time,study,source); よろしくお願いします。

    • ベストアンサー
    • MySQL