SQL Anywhere 11 を使用して、データベースから各テーブルのテーブル サイズを取得しようとしています。
sp_spaceused
廃止されたことを今知った
これについて何か助けていただければ幸いです。:)
SQL Anywhere 11 を使用して、データベースから各テーブルのテーブル サイズを取得しようとしています。
sp_spaceused
廃止されたことを今知った
これについて何か助けていただければ幸いです。:)
おそらく、システム ビュー 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
お役に立てれば。
このスクリプトを 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