MSDE FunClub
Microsoft Data Engine FunClub
MSDE技術者向けメーリングリスト過去ログ[186]番
 
[TOP]>[MSDE技術者向けメーリングリスト過去ログ(186番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
Re: テーブル設計のアドバイス

Date: Tue, 1 Aug 2000 15:58:07 +0900
From: FOX-SS <who@sub.example.jp>


こんにちは、堀川さん

>たぶん昔のテーブル設計を、そのままサーバーに持ち込んでいるのでしょうね

うっっ、そうなんです。

>テーブルを設計するときに、部品管理の点数は5点で良いのか、将来
>増える可能性はないのかを検討すべきだと思います
>
>いろいろ方法はありますが、例えば
>      ( [登録ID] ,  [利用者ID]  ,  [部品] )の3列で、連結主キーとす
>る方法が、簡単でしょう
>こうすれば部品の個数管理は、可変となります
>また、([登録ID] ,  [利用者ID]  ,  [部品] )の組み合わせですぐに検索
>することができますね
>
>これを、部品1,2,3,4,5のように列方向で管理したために、部品番号検索を
>行うときに全ての部品列を調査しなければいけません
>
>何か特別な理由で、部品1,2,3,4,5,***,のように、列で管理しているのかな?

どうやら、最初はテーブル設計時の正規化の時に上記のようにしていたとのこ
とですが、行が増えてしまい、あまりにパフォーマンスが出ないので、1登録
単位で部品100までと限定(以前は無制限)という構造に作り替えたようで
す。以前のテーブル構造で持っていた行はだいたい100万行(レコード)あ
ったらしい。その中を全件検索するので遅かったそうです。何せ、部品が無限
個登録できる構造だったので、BOFからEOFまでサーチする仕掛けだったとか。
結局パフォーマンスの折り合いが付かず、正規化のルールからは外れますが「
列」をたくさん持ったテーブルになったそうで。

今やっている保守の仕事の他に、同じ問題を抱えている物件があって、同様に
「たくさんの列を持ったテーブル構造に作り替えて、サーチは一回で済ます」
事を迫られております。どちらかというと問題はそのための『1回こっきりし
か使わないのに作らないと駄目なデータ移行プログラム』を書かなきゃいかん
という手間ですね。とほほ。

<< FOX-SS >>


[MSDE/SQLServerに関して、今、どんなことにお困りですか?]
よろしければお困りの内容を、電子メールで教えて下さい。
質問を電子メールで作成する


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

[MSDE / MSDE2000 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。