Hello,
J'ai besoin encore de votre lumière.
Pour obtenir le nombre total de pages occupées par la table T_TEST, j'ai fais :
Et obtenir le résultat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SET STATISTICS IO ON SELECT * FROM T_TEST SET STATISTICS IO OFF
Par contre en utilisant la DMV "sys.dm_db_partition_stats", je trouve une valeur différente :--(1000000 row(s) affected)
--Table 'T_TEST'. Nombre d'analyses 1, lectures logiques 219698, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT partition_id, SUM(used_page_count) AS total_number_of_used_pages, SUM (reserved_page_count) AS total_number_of_reserved_pages, SUM (row_count) AS total_number_of_rows FROM sys.dm_db_partition_stats WHERE object_id=OBJECT_ID(N'MaBase.dbo.T_TEST') AND (index_id=0 or index_id=1) GROUP BY partition_id
partition_id-------------------- total_number_of_used_pages --------------------total_number_of_reserved_pages -------------------- total_number_of_rows
72057594042187776-------------------- 5416 ---------------------------------------- 5417 -------------------------------------------1000000
d'où provient cette différente ? Merci de m'éclairer.
-- Voici la table T_TEST
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 --Création de la table SET NOCOUNT ON IF OBJECT_ID('dbo.T_TEST') IS NOT NULL DROP TABLE dbo.T_TEST CREATE TABLE dbo.T_TEST ( id int identity(1,1), val varchar(10), creation_date datetime ) --Chargement d'1 million de lignes dans la table DECLARE @counter int; SET @counter = 1; WHILE @counter <= 1000000 BEGIN INSERT INTO T_TEST(val,creation_date) VALUES(convert(varchar(10),(LEFT(convert(bigint,RAND()*10000000),6))),getdate()); SET @counter = @counter + 1 END;
Partager