1
MSSQL 2008では、行が潜在的に8060バイトより長いテーブルを識別するのに役立つクエリはありますか?私はこれがデータ行の最大サイズであることを理解しています。長い行を識別するクエリ
例えば、
create table a (
a varchar(4000),
b varchar(4000),
c varchar(4000)
)
MSSQL 2008では、行が潜在的に8060バイトより長いテーブルを識別するのに役立つクエリはありますか?私はこれがデータ行の最大サイズであることを理解しています。長い行を識別するクエリ
例えば、
create table a (
a varchar(4000),
b varchar(4000),
c varchar(4000)
)
すばやく汚いもの。
SELECT OBJECT_NAME(object_id),SUM(max_length)
FROM sys.columns
WHERE is_computed=0 and OBJECTPROPERTY(object_id,'IsUserTable')=1
GROUP BY object_id
HAVING SUM(max_length) > 8060 or MIN(max_length)=-1 /*MAX datatype*/
廃棄され変更された列は、無駄なスペースを消費する可能性があります。 sys.system_internals_partition_columns
のどのオブジェクトが実際に割り当てられたオフラインページを持っているかを確認する方が良い場合があります。