2012-04-05 9 views
7

Ich versuche, die Tabellengröße für jede Tabelle aus einer Datenbank unter Verwendung von SQL Anywhere-bekommen 11.SQL Anywhere 11 - Tabellengröße

ich gerade herausgefunden sp_spaceused

veraltet ist

Jede Hilfe mit diesem wäre sehr geschätzt! :)

+0

Haben Sie einen Link es ist deprecation bestätigt oder ist diese Spekulation? –

+0

gefunden eins. http://dcx.sybase.com/1001/en/dbwnen10/wn-newjasper-s-3751424.html –

+0

etwas Glück dazu? – tray

Antwort

4

Möglicherweise ist die Systemansicht SYSTAB kann eine ausreichend gute Alternative sein. Es kann Ihnen die Anzahl der Zeilen in der Tabelle geben, und Sie können angeben, wie viele Seiten die Tabelle verwendet. (Im Beispiel unten, ich bin Multiplikation der Anzahl der Seiten, die von der Seitengröße der DB insgesamt Byte-Größe zu erhalten.)

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 

Hoffnung, das hilft.

1

können Sie dieses Skript in SQL Server verwenden, um die größte Tabelle in der Datenbank und die Zeile zu finden zählen

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 
Verwandte Themen