SQL CEデータベース内の個々のテーブルとカラムのサイズを特定するにはどうすればよいですか?

私はデータベースを小さくすることを試みていますが、すべてのデータがどこに費やされているのかわかりません。

テーブルやカラムがどれくらいのサイズを使用するかを識別できるソフトウェアはありますか?

スペースを取るテーブルのほかに他のものがありますか?ソフトウェアがそれをサポートしていますか?

0

2 答え

テーブル、索引などの継承コストを脇に置いておけば、実際には何もやりたいことはできないかもしれませんし、ディスクフットプリントを意味すると想定することもできません。

int型のテーブルがあり、VarChar(128)のintが4の場合、varchar(128)は132バイト*の行数になります。

これはダウンロード/インストール用ですか?もしそうなら、グッブルDBCC ShrinkDB、回復オプションが役立つかもしれません。

あなたがintentを単語に置き換えたり、varcharsを切り捨てたりすることは、あなたのコード内でうんざりすることを意味します。同様に正規化/非正規化は、それ自身のコストです。また、あなたがatentionを支払うファイルサイズは、デフォルトで常に成長しているので、これまでの容量で最大になるディスク上のmdbではなくバックアップです。あなたがそれを使って多くを開発していて、バックアップしていなければ、それはばかげて高いかもしれません。

右 まず、スペースを使い果たすたびに、新しいニーズに応じて1ページから16ページのサイズのコンパクトになります。 2番目に空き領域がなくなると、行を連続して格納するには不十分であり、コンパクトでなければCEはスペースを回復しません。したがって、多くの挿入を行い、次にいくつかの削除を行い、使用されたスペースは再利用されません。

だからあなたはこのコンパクトにしようとする前に、それ以外の場合は疑わしい価値があります

コードで、またはSQL Serverマネージャを接続する

選択*

INFORMATION_SCHEMA.Columnsから

あなたのデータベースについて素敵な情報を提供します

Data_typeとCharacter_Maximumに基づいて集計するクエリを作成するだけの問題です。しかし、それはあなたに行ごとの理論上の最大サイズを与えるでしょう。 NVarChar(50)は最大100バイトです(画像はギグです)が、それに「Fred」がある場合は8になります。 行サイズを取得したら、テーブルの数を掛ける 実際のサイズは、各行の実際の列ごとにデータを切り抜くことを意味し、CEでは困難な場合があります。

あるいは、コードですべてを行うこともできますが、 あなたがそれを叩いて、問題を私のゲストに戻したいのであれば、あなたは私のためにそれをするのに十分な金額を支払っていません。 :)

私はちょうどこれを見つけましたが、googleのために、おそらくそれはあなたが欲しいものをやります。

SQlコンパクトクエリアナライザ

1
追加された
さて、私は票を得るでしょう。
追加された 著者 Tony Hopkinson,
これは sdf ファイルであり、 nvarchar を使用していることに注意してください。私の宇宙がどこにあるのかを見たいと思っていて、それを自分で計算するのではなく、それは本当に問題ではありません。私はインサートをしているだけなので、縮小されていないページやフリーページはありません。
追加された 著者 Tom Wijsman,

このMS KBの記事を参照してください: http://support.microsoft.com/kb/827968 - 使用該当する場合(またはVisual Studio Server ExplorerのGUI経由で)データベースを縮小するためのCompact API

1
追加された
ありがとう、私はコンパクトファイルは、挿入だけで何かを行うとは思わないが、これは少なくともサイズをカウントアップする方法のアイデアを提供します。
追加された 著者 Tom Wijsman,