就像我们有sp_helpdb sp = sysdatabases表的替代方法一样,
我们是否在SQL Server 2000中有sp_spaceused sp的替代表?
此致
Manjot
答案 0 :(得分:0)
不是真的 - 使用“sys”系统目录模式和动态管理视图,SQL Server 2005在系统管理方面带来了巨大的改进 - 但在SQL Server 2000中,您的数量非常有限。
您可以使用此脚本来检查和收集空间使用的信息并很好地呈现它 - 但它仍然在最后使用sp_spaceused
存储过程:
--**************************************
-- Name: Get SQL Table Size - Table and Index Space - Row Count
-- Description: This Script will return the row count and the amount of
-- disk space that each table uses within a specifed database.
-- When returning total disk space used, it breaks it up into 3 categories...
-- 1. The amount used by data
-- 2. The Amount used by indexes
-- 3. The amount of unused space
SET NOCOUNT ON
DECLARE @cmdstr varchar(100)
DECLARE @Sort bit
SELECT @Sort = 0 /* Edit this value for sorting options */
--Create Temporary Table
CREATE TABLE #TempTable
([Table_Name] varchar(50),
Row_Count int,
Table_Size varchar(50),
Data_Space_Used varchar(50),
Index_Space_Used varchar(50),
Unused_Space varchar(50) )
--Create Stored Procedure String
SELECT @cmdstr = 'sp_msforeachtable ''sp_spaceused "?"'''
--Populate Tempoary Table
INSERT INTO #TempTable
EXEC(@cmdstr)
--Determine sorting method
IF @Sort = 0 BEGIN
--Retrieve Table Data and Sort Alphabetically
SELECT * FROM #TempTable
ORDER BY Table_Name
END
ELSE BEGIN /*Retrieve Table Data and Sort by the size of the Table*/
SELECT *
FROM #TempTable
ORDER BY Table_Size DESC
END
--Delete Temporay Table
DROP TABLE #TempTable
答案 1 :(得分:0)
您可以随时sp_helptext sp_spaceused
查看它的作用,从何处获取数据。你也可以运行adn显示执行计划,得到几乎相同的结果。
据我记得在SQL 2000中,使用的空间是从sysindexes中的信息中检索的。
答案 2 :(得分:0)
您可以使用:
DBCC PDW_SHOWSPACEUSED ("TableName");
获取表的保留空间,数据空间,索引空间,未使用空间,PDW_NODE_ID和分发ID。
注意:由于某些内部设置,结果中的行数始终为60。