2012-04-05 10 views
7

Estoy tratando de obtener el tamaño de la tabla para cada tabla de una base de datos utilizando SQL Anywhere 11.SQL Anywhere 11 - Tabla del tamaño del

simplemente descubrí sp_spaceused ya no se utiliza

Cualquier ayuda con esto sería ¡apreciado enormemente! :)

+0

¿Tiene un enlace confirmando que es desaprobación o se trata de la especulación? –

+0

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

+0

¿Alguna suerte en esto? – tray

Respuesta

4

Posiblemente la vista del sistema SYSTAB puede ser una alternativa lo suficientemente buena. Puede darle el número de filas en la tabla y puede darle cuántas páginas usa la tabla. (En el ejemplo siguiente, estoy multiplicando el número de páginas de tamaño de página de la base de datos para obtener un tamaño total de bytes.)

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 

Espero que esto ayude.

1

Puede utilizar esta secuencia de comandos en SQL Server para encontrar la tabla de base de datos más grande de fila y contar

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