8

SQL Anywhere 11 を使用して、データベースから各テーブルのテーブル サイズを取得しようとしています。

sp_spaceused廃止されたことを今知った

これについて何か助けていただければ幸いです。:)

4

3 に答える 3

6

おそらく、システム ビュー SYSTAB が十分な代替手段になる可能性があります。テーブル内の行数と、テーブルが使用するページ数がわかります。(以下のサンプルでは、​​ページ数に DB のページ サイズを掛けて、合計バイト サイズを取得しています。)

SELECT
    count,                      -- number of rows in the table
    (table_page_count * DB_PROPERTY('PageSize')) tablesize  
                                -- total size, in bytes
FROM SYSTAB
WHERE table_name = 'mytable';   -- or whatever limitations you want on 
                                -- the scope of the query

お役に立てれば。

于 2012-10-16T00:14:39.343 に答える
1

このスクリプトを SQL Server で使用して、データベース内の最大のテーブルと行数を見つけることができます

SELECT sc.name +'.'+ ta.name TableName
,SUM(pa.rows) RowCnt
FROM sys.tables ta
INNER JOIN sys.partitions pa
ON pa.OBJECT_ID = ta.OBJECT_ID
INNER JOIN sys.schemas sc
ON ta.schema_id = sc.schema_id
WHERE ta.is_ms_shipped = 0 AND pa.index_id IN (1,0)
GROUP BY sc.name,ta.name
ORDER BY SUM(pa.rows) DESC  
于 2012-11-27T21:41:15.363 に答える