1

列でSQL ServerTextまたはデータ型を使用すると、大きすぎるデータベースが作成されます。Varchar(max)varchar(max)

それは正常ですか?

手伝ってくれてありがとう

テキスト フィールドを編集するのは約 5 ~ 50 kb MAX

4

3 に答える 3

1

それはあなたのテーブルの中身に依存します。1 MBのデータを含む1000行がある場合、1000Mbになります

実行してみてください:

select datalength(yourField) from yourTable

datalength関数は、列が占めるバイト数を示します

于 2012-03-23T13:32:58.563 に答える
0

varchar(max)はvarchar(n)とは異なります。

varchar(max)セルには2Gバイトのデータを含めることができます。

ただし、varchar(n)の場合:nの最大数は8000であり、最大8Kバイトのデータを意味します。

しかし、とにかく、データベースにどのような種類のデータを保存したのかわかりません。

つまり、要するに、 おそらく正常です。

于 2012-03-23T11:48:06.593 に答える
0

sys.sp_spaceused @objname = N'YourTable'; を実行します。テーブルが使用しているスペースを確認します。

未使用のスペースがない場合、データは実際にそのスペースを占有しています

未使用の領域が多い場合は、新しいファイル グループを作成し、text/varchar(max) 列をこの新しいファイル グループに移動して、データベースを圧縮してみてください。DBCC SHRINKDB

その後、プライマリ ファイル グループが占有するスペースが少なくなり、DBCC SHRINKFILE問題が発生するたびに を使用して「問題のある」ファイルを縮小できます。

新しいファイル グループの作成は、SSMS のデータベース プロパティのファイル ページで行うことができます。そこから sql スクリプトを生成して、何が起こっているかを確認できます。

テキスト列を別のファイル グループに移動するには、TEXTIMAGE_ON { filegroup| CREATE TABLEの「デフォルト」}

申し訳ありませんが、テーブルを変更することはできません。個々の列を別のファイル グループにすることはできませんが、すべての「大きな」列を一度に。そのため、手動で行うか、新しいデータベース ダイアグラム (SSMS スタジオ) でテーブルを表示して、プロパティを変更する必要があります。申し訳ありませんが、「テキスト/画像ファイル グループ」のような名前です (おそらく、私はスペイン語の SSMS を持っています) ですが、データベース ダイアグラム デザイナーでテーブル プロパティを表示すると、そこに表示されます。

利点: メイン テーブルの断片化が少なく、テーブル/クラスター化インデックス サカンが高速で、関心のあるファイルのみを圧縮できる可能性があります: 問題のある "大きな" 列があります。

于 2012-03-23T11:15:58.193 に答える