Date: Fri, 06 Feb 2004 09:43:25 +0900
From: HYODO Tomomi <who@example.co.jp>
兵頭です。
msc_hamaさん、市村さん、ご回答ありがとうございます!
>msc_hamaさん
>"SELECT * FROM TableA WHERE [カラムB] Is Null"
>
>では、目的は達しませんか。?
もちろんこれで処理は可能なのですが、データ数が多い
場合にパフォーマンスを上げる方法を検討しています。
>市村さん
>現在、うちのDBにある130万件ほどデータのあるテーブルに対し
>select count(*) from Table_name where column_name is null
>を投げると、1秒足らずで戻ってきますよ。
>
>クエリアナライザで見ると、ちゃんとIndexを使って
>スキャンしてくれています。
あ、本当ですか?
かなり心強い情報をありがとうございます。
>Null許可の列でもインデックスは張れるんじゃないですか?
>PrimaryKeyにはできないでしょうけれども。
その通りですね。勉強不足でした。
>これは、DBサーバのスペックやインデックスの
>張り方に依存するんじゃないでしょうか?
>
>まず、投げられるSQLに対する適切な
>インデックスを張ってやり(あるいは
>張られたインデックスをきちんと使用するような
>適切なSQL文を作成し)、実際に数十万件の
>レコードを作ってレスポンスをチェックされては
>いかがでしょうか。
そうですね。やはり検索のパフォーマンス対策と
しては主にインデックスの張り方ということですね。
>むしろ問題になっているのは、抽出結果件数が多くなったときの
>クライアント側のスペック不足によるレスポンス悪化です。
>DB側ではサクッと返してくるんですが、クライアント側で
>処理能力が不足してしまうというケースがあります。
>(これはシステムの仕様設計の問題だとは思いますが)
MSDEを用いたスタンドアロンのアプリケーションですので、
もちろんマシンの推奨スペックは定めてありますが、実際
にはどの程度のマシンで使用されるかはユーザによりまちまち
になるので、それが悩ましいところですが、
推奨スペックで問題がないよう実際に試験をしてみようと
思います。
貴重な情報ありがとうございました。
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|