Comme nous avons alternative pour sp_helpdb sp = table sysdatabases,alternatif sp_spaceused dans SQL 2000
Avons-nous une table alternative pour sp sp_spaceused dans SQL Server 2000?
Cordialement
Manjot
Comme nous avons alternative pour sp_helpdb sp = table sysdatabases,alternatif sp_spaceused dans SQL 2000
Avons-nous une table alternative pour sp sp_spaceused dans SQL Server 2000?
Cordialement
Manjot
Pas vraiment - SQL Server 2005 introduit une énorme amélioration de la gestion des systèmes avec le catalogue système « sys » schéma et les vues de gestion dynamique - mais dans SQL Server 2000, vous êtes assez limité.
Vous pouvez utiliser ce script pour vérifier et recueillir l'espace utilisé l'information et de la présenter bien - mais il est toujours à l'aide du sp_spaceused
proc stocké à la fin:
--**************************************
-- 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
Vous pouvez toujours faire sp_helptext sp_spaceused
et de voir par vous-même ce qu'il fait, d'où obtient-il les données. Vous pouvez également exécuter adn afficher le plan d'exécution, à peu près le même résultat. Dans la mesure où je me souviens dans SQL 2000, l'espace utilisé est récupéré à partir de l'information dans sysindexes
Ce que je veux savoir est: joindre les résultats de: exec sp_spaceused 'nom de la table'; select @@ servername dans la même ligne sans utiliser de table temporaire. – Manjot
Plus nécessaire.
encore Il serait bon d'apprendre à ce sujet « un jour »
Vous pouvez utiliser ceci:
DBCC PDW_SHOWSPACEUSED ("TableName");
pour obtenir l'espace réservé, l'espace de données, l'espace d'index, l'espace inutilisé, PDW_NODE_ID et distribution ID de la table. NB: Le nombre de lignes dans le résultat est toujours 60 en raison de certains paramètres internes.
Je reçois des informations de table sur toutes les bases de données de tous les serveurs, puis les stocke dans un emplacement commun. Pour chaque daatabase, je souhaite obtenir le nom de serveur, le nom de base de données, sp_spaceused pour chaque table. Ce paquet SSIS n'aime pas les tables temporaires, donc je cherchais des alternatives. J'ai essayé de faire sp_msforeachdb 'sp_msforeachtable ....' Une aide? – Manjot
pourquoi est-ce faux? exec sp_MSforeachdb 'utiliser [@]; execute sp_MSForEachTable '' insert dans #TableSizeAudit EXEC sp_spaceused '' ''? '' ''; '' ',' @ ' – Manjot
Le tri de la taille de la table est un peu désactivé. '80 KB 'est suivi de' 700 KB ', suivi de '70 KB', etc. – MEMark