2016-05-27 10 views
0

私はレポートアナリストであり、SQL Serverの "初心者"です。私は100列の2つのテーブルを結合するビューを持っています--50はNVARCHAR(255) Null、デフォルトはintまたはfloatです。SQL Server 2012の大きなテーブルの列のパフォーマンス

テーブルは最大100万行になり、SQL Serverを使用してデータを抽出するとパフォーマンスがひどく、時間がかかってメモリが不足します。私のNVARCHAR(255)のほとんどは、元のテーブルで10 & 50バイトに制限されているので、255は必要ありません。任意のSQL結合問題を除いて、50の列サイズを真の限界値に減らすことによるパフォーマンス上の利点はありますか?

私はこれについてフォーラムで様々なデータを見てきました。いくつかの記事は、これを減らすことによってページサイズパフォーマンスのメリットが得られることを示しています。データは「IN-ROW」です。

逆に私はNVARCHAR(255)が実際のデータサイズ10または50を抽出するだけで、パフォーマンスの問題を引き起こすことはありません。

助けてください?

ありがとうございました!

Rebelle

+0

ようこそ!無関係ですが、そのような表には数多くのデータが含まれているように思えます - データベースの正規化(https://en.wikipedia.org/wiki/Database_normalization)の有無を調べることを検討してください時間 – Conduit

答えて

0

私は、私はまだ将来のニーズを考慮しながら、あなたがより合理的な数にNVARCHARを調整推薦StackOverflowの上の周り探して見つけることができたものに基づいています。

以下のリンクは、このトピックについて詳しく説明しています。私はこれのように要約します - SQLのいくつかの部分は、必要なメモリを決定する際に可能な最大サイズを使用します。

is-there-an-advantage-to-varchar500-over-varchar8000

関連する問題