私は現在、200 列以上と 300 万行のデータを持つテーブルを含むデータベースをクライアントから渡されたプロジェクトに取り組んでいます (笑)。これは間違いなく設計が不十分であり、現在いくつかのオプションを検討しています。16 GB の RAM と 512 ssd を搭載した 2012 mbp でアプリを開発しました。mvc4 を使用してアプリを開発する必要があったため、osx で Parallels 8 を使用して開発およびテスト環境をセットアップしました。設計の一環として、クライアントが数百行のこの大きなテーブルにカスタム クエリを作成するためのインターフェイスを開発したので、動的 linq を使用して渡される queryString をコントローラーに送信し、結果は JSON を使用してビューに送信されます。 (剣道UIグリッドを設定するため)。私のmbpでは、作成したインターフェースを使用してクエリをテストすると、剣道UIグリッドに結果を返すのに最大10秒かかります(検索が多すぎます)。同様に、
ただし、これらの同じクエリをテストするためにこれをクライアントに展開すると、3 分以上かかります。簡単に言うと、クライアントはサーバー ハードウェアをアップグレードしますが、それまでの間、アプリをテストする必要があります。
私の質問は、テーブルが 200 列を保持しているにもかかわらず、各行が一意であるということです。より具体的には、設計は次のとおりです。
PK-(GUID) OrganizationID (FK) --- 200 列 (税フィールド)
これを次のように再設計すると:
PK (GUID) OrganizationID (FK) FieldID(FK) 入力
フィールド テーブル: FieldID FieldName
これにより、この 300 万行のデータ テーブルが 6 億行になりますが、3 列しかありません。パフォーマンスの向上は見られますか?
洞察をいただければ幸いです-正規化は理解していますが、私の経験のほとんどはプログラミングです。
前もって感謝します!