- PR -

エンタープライズマネージャーでのテーブルの行数について

1
投稿者投稿内容
フリスキー
会議室デビュー日: 2006/03/28
投稿数: 4
投稿日時: 2006-03-28 19:43
SQLサーバー2000で、SQLサーバー7.0のテーブルをインポートしてきたのですが、できたテーブルのプロパティの「行」の数を比べてみると、テーブルによってですが、2000のほうが少ないものがあります。
全部インポートしてこられなかったのかと思って、 select count(*) from テーブル名 で数えてみると、同じでした。もとのテーブルの行数と同じでした。
行、イコール、データ件数だと思っていたのですが、違うんでしょうか。
違うなら違うでもいいのですが、一番心配なのは、新しいテーブルをすぐアプリケーションで使っても問題ないのでしょうか。
サポートサイトなどで調べたけどわかりませんでした。よろしくお願いします。
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-03-31 13:22
こんにちは。

テーブルの正確な行数は、フリスキーさんが試されたように
SELECT COUNT(*) FROM テーブル名
を実行して調べます。

しかし、Enterprise Manager のプロパティに表示される[行:]項目は、sp_MStablespace というストアドプロシージャを利用しています。
この辺りの動作はプロファイラで確認できます。

sp_MStablespace は行数として sysindexes というシステムテーブルの rows 列を返しているようなので、このあたりに不整合があるのではないでしょうか。

まずは DBCC UPDATEUSAGE を試してみてください。
http://msdn2.microsoft.com/ja-jp/library/ms188414(SQL.90).aspx

それでも改善しなければテーブルのインデックスを張り直すことで解決すると思います。
1

スキルアップ/キャリアアップ(JOB@IT)