SQL 2000中的sp_spaceused替代方法

时间:2009-10-12 20:15:12

标签: sql-server-2000

就像我们有sp_helpdb sp = sysdatabases表的替代方法一样,

我们是否在SQL Server 2000中有sp_spaceused sp的替代表?

此致

Manjot

3 个答案:

答案 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。