喫茶XRAYトップページ

[スレッド全体
]

[3540] 世の中そんなに甘くない返信 削除
2010/7/9 (金) 19:21:51 Sayke
「RDBなんてそんなもんですよ」と言われれば、返す言葉も無いですが。

DBのIndexに関して

MSSQLの場合、データ抽出や検索が極端に遅い場合、しかたなくIndexを
作成していたのですが、Indexを作成をしていないフィールドをORDER BY
句に設定しても普通にデータが抽出できてしまいますので、そんなもん
だと思ってました。

しかしFBの場合、Indexを作成していないフィールドをORDER BY 句に
記述した場合、極端にパフォーマンスが落ちてしまうのですね。
MSSQLの場合、DataSetのActiveをTrueに設定すると間をおかずデータ
はOPenされますが、FBの場合は、3万行程度で7から8秒程度間をおい
てOpenされてしまう為、結果的にMSSQLに比して処理時間がかかって
しまいます。

フィールド A、B、Cがあって "ORDER BY A,B,C" が必要な場合は
"A,B,C" でIndexを作成すると即座にOpenできますが、次に"ORDER BY A"
で抽出する場合は予め"A"でもIndexを追加しておくか"ORDER BY A,B,C"
で流用して抽出するかって感じです。
Indexって、必要なフィールドを個別に作成しておけば(Index A と
Index B と Index C)あとはDBMSが上手い事やってくれるもんだと
も思ってました。
実際は、ケースに応じてIndexが必要なんて・・・。
世の中そんなに甘くないって事ですね。

「Index多すぎると更新に時間がかかる」って事だそうで、綿密に設計し
ないといけないのですね。
本当はこちらが正しくて、今まではMSSQLのお陰だったのかな。




[3541] Re:世の中そんなに甘くない返信 削除
2010/7/9 (金) 19:50:26 Mr.XRAY
▼ Saykeさん,ですね.

RDBMSは,インデックスがないとほとんど使いもになりませんね.
でも,このインデックスの付け方.
実は私も,いや,私はよく分からないのですよ.
不必要に多いのもパフォーマンスが悪くなるし.

ちなみに,JETデータベースエンジン,つまりMicrosoft Accessは
インデックスがなくてもそこそこ動作するようです.

Accessで思い出したのですが,昔パソコン通信時代にこんな書き込みが
ありました.

Accessで業務用アプリを作成していた.
挙動がおかしいのでマイクロソフトに問い合わせた.
問い合わせは有料だといわれ,どうしますかと訊かれた.
何回かのやりとりの末,有料でも訊く事にした.
問い合わせの結果は,マイクロソフトとしては,Accessはあくまでも
個人用なので,業務に使用するには,SQLサーバーを使用してください.

という内容でした.
会議室でかなり愚痴をこぼしていました.
こんな結果にサポート料金を払うなんて(実際払ったそうです)


[3544] Re2:世の中そんなに甘くない返信 削除
2010/7/12 (月) 11:39:50 taka
▼ Mr.XRAYさん
> ▼ Saykeさん

私はインデックスって結構、むやみやたらとつける癖があります
更新に影響するのですね。(^−^

Accessって、なぜか私がくむと数日でファイルがクラッシュしてしまいます。
Accessはやめて、firebirdとMySQLを使ってクラッシュもなく数年絶好調です。
sqliteもクラッシュしたことがあるので敬遠気味です


[3546] Re3:世の中そんなに甘くない返信 削除
2010/7/12 (月) 12:38:13 Mr.XRAY
> Accessって、なぜか私がくむと数日でファイルがクラッシュしてしまいます。

ハハハッ.
何故だ!?

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82