Sql server 2000 SQL 2000中使用的sp_空间替代方案
就像我们有sp_helpdb sp=sysdatabases表的备选方案一样 对于SQL server 2000中使用的sp,我们是否有替代表 问候Sql server 2000 SQL 2000中使用的sp_空间替代方案,sql-server-2000,Sql Server 2000,就像我们有sp_helpdb sp=sysdatabases表的备选方案一样 对于SQL server 2000中使用的sp,我们是否有替代表 问候 Manjot并非如此-SQL Server 2005通过“sys”系统目录模式和动态管理视图在系统管理方面引入了巨大的改进-但在SQL Server 2000中,您的能力非常有限 您可以使用此脚本检查和收集空间使用信息,并将其很好地呈现出来,但它最终仍然使用sp\u spaceused存储过程: --************************
Manjot并非如此-SQL Server 2005通过“sys”系统目录模式和动态管理视图在系统管理方面引入了巨大的改进-但在SQL Server 2000中,您的能力非常有限 您可以使用此脚本检查和收集空间使用信息,并将其很好地呈现出来,但它最终仍然使用
sp\u 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
您可以随时执行
sp_helptext sp_spaceused
并亲自查看它的功能以及从何处获取数据。您还可以运行并显示执行计划,以获得几乎相同的结果
据我记忆所及,在SQL 2000中,使用的空间是从中的信息中检索的。您可以使用:
DBCC PDW_SHOWSPACEUSED ("TableName");
获取表的保留空间、数据空间、索引空间、未使用空间、PDW_节点_ID和分发ID
注意:由于某些内部设置,结果中的行数始终为60。我想查看的是:加入以下结果:exec sp_spaceused'table name';在同一行中选择@@servername,但不使用临时表。我正在获取所有服务器中所有数据库的表信息,然后将其存储在公共位置。对于每个数据库,我想获取每个表使用的servername、databasename、sp_space。这个SSIS包不喜欢临时表,所以我一直在寻找替代方案。我试过做sp_msforeachdb'sp_msforeachtable…'有什么帮助吗?为什么这是错误的?exec sp_MSforeachdb'use[@];执行sp#MSForEachTable“插入到#TableSizeAudit EXEC sp#u spaceused”中?”;“,@”表格大小排序有点不正确。”80KB后接700KB,700KB后接70KB,以此类推。