同DB同構造テーブルで処理速度が変わるのはなぜ?

解決


ぷく  2004-10-19 01:45:50  No: 86091

お世話になります。

VB6.0 SP5を使用しております。

SQLServerで
現在更新中のテーブルから必要なデータを抽出するときと、
同構造で更新なしのテーブルから抽出するときでは、
更新なしテーブルの方が時間がかかるのは何故なのでしょうか。

レコード数は、更新中テーブルが多いのですが...。


raki  URL  2004-10-20 20:20:20  No: 86092

同じSQLを発行していて、
かつ更新中テーブルのほうが取得されるデータが多いと仮定すると、
インデックス等の違いかと思われますが。

違うSQLを発行している、
またはレコード数は多いが、HITするデータ数が更新中テーブルのほうが
少ないとすると、
それは当然としかいいようがないですね。

『現在更新中』『更新なし』という意味がいまいちピンときませんので、
これくらいしか言えません。


ぷく  2004-10-21 19:14:27  No: 86093

raki様、御回答ありがとうございます。

更新中:当月のデータテーブル
更新なし:過去月のデータテーブル
月が変わる度に、
別テーブルを作成し一月分のデータを保存しています。

インデックスは同じです。
あと、Hitするデータ数もほとんど同じでした。
なのに、速度は極端に遅くなるのです。


java.lang.Nullpo  2004-10-21 19:32:22  No: 86094

> 現在更新中のテーブルから必要なデータを抽出するときと、
> 同構造で更新なしのテーブルから抽出するときでは、
> 更新中:当月のデータテーブル
> 更新なし:過去月のデータテーブル

まず「更新中のテーブル」と「更新なしのテーブル」の意味が判りかねます。

> テーブルから抽出
SELECTするということですよね?
SQL文くらい、記載しても良いのでは?


ぷく  2004-10-21 19:54:26  No: 86095

raki様
申し訳御座いません、インデックスが違っていました。
解決致しました。ありがとう御座いました。

java.lang.Nullpo様
説明が悪くて本当に申し訳御座いません。
更新中テーブルとは現在の月のデータが随時入ってくるテーブルのことで、
更新なしテーブルは過去の月のデータを一月毎格納しているテーブルのことでした。

SQL文は以下のとおりです。

SELECT 日時,Data1,Data2 From " & sTable & _
" WHERE ((AName='" & AName(I) & "') " & _
"AND (GNo= 1 ) " & _
"AND (日時 <= '" & DateT  & "' AND 日時 >= '" & DateE & "') " & _
"AND (DATEDIFF(second, 日時, CONVERT(DATETIME, '" & DateT & "', 102)) % abs(" & pvDataInterval2 & ") = 0)) " & _
"ORDER BY 日時 DESC;

「sTable」に現在月のテーブルか過去月のテーブル名を入れていました。
SQL文を記載したものかどうか悩んだのですが、テーブル名が違うだけだったので載せておりませんでした。御面倒をおかけ致しました。

お蔭様で解決致しました。ありがとう御座いました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加