Interview Questions Answers.ORG
Interviewer And Interviewee Guide
Interviews
Quizzes
Home
Quizzes
Interviews Databases Programming Interviews:BtrieveClipperData ModelingData StructuresDatabase AdministrationDatabase Administrator (DBA)Database AnalystDatabase DeveloperDB DevelopmentEDI/Data Integration ExpertFirebirdHierarchicalIBM DB2InformixJava DatabaseMariaDBMicrosoft Access DeveloperMongoDBMS SQL ServerMySQL ProgrammingNetworkNoSQLObject RelationalPostgrePostgreSQLProgressRDBMSRelationalSQLSQL AdministratorSQL and PL/SQLSQL Notification ServicesSQL server 2008SSRSStored ProcedureSybaseTeradata
Copyright © 2018. All Rights Reserved
MS SQL Server Interview Question:
What Is Index Fragmentation in MS SQL Server?
Submitted by: AdministratorIndex fragmentation is a phenomena where index contents are no longer stored continuously in the storage. When index contents become scattered in the storage, fragmented, performance on index will degrade.
If you want to see the fragmentation level of an index, you can use the system function called sys.dm_db_index_physical_stats() in the following format:
SELECT * FROM sys.dm_db_index_physical_stats(
database_id, table_id, index_id, DEFAULT, DEFAULT
)
The tutorial exercise below shows you how to view the fragmentation level of all indexes on table "ggl_links_indexed":
USE GlobalGuideLineDatabase
GO
SELECT COUNT(*) FROM ggl_links_indexed;
GO
100000
SELECT i.index_id, i.name, s.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (
DB_ID(N'GlobalGuideLineDatabase'),
OBJECT_ID(N'ggl_links_indexed'),
DEFAULT, DEFAULT, DEFAULT) s, sys.indexes i
WHERE s.object_id = i.object_id
AND s.index_id = i.index_id;
GO
Submitted by: Administrator
If you want to see the fragmentation level of an index, you can use the system function called sys.dm_db_index_physical_stats() in the following format:
SELECT * FROM sys.dm_db_index_physical_stats(
database_id, table_id, index_id, DEFAULT, DEFAULT
)
The tutorial exercise below shows you how to view the fragmentation level of all indexes on table "ggl_links_indexed":
USE GlobalGuideLineDatabase
GO
SELECT COUNT(*) FROM ggl_links_indexed;
GO
100000
SELECT i.index_id, i.name, s.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (
DB_ID(N'GlobalGuideLineDatabase'),
OBJECT_ID(N'ggl_links_indexed'),
DEFAULT, DEFAULT, DEFAULT) s, sys.indexes i
WHERE s.object_id = i.object_id
AND s.index_id = i.index_id;
GO
Submitted by: Administrator
<pre>index_id name avg_fragmentation_in_percent
0 NULL 0.574712643678161
2 ggl_links_url 0
3 ggl_links_counts 0</pre>
Since there is no clustered index (index_id=0) on this table, the first row in the return is just a place holder.
The other two rows show that "ggl_links_url" and "ggl_links_counts" have zero fragmentation, since they were created not long ago.
Submitted by: Administrator
0 NULL 0.574712643678161
2 ggl_links_url 0
3 ggl_links_counts 0</pre>
Since there is no clustered index (index_id=0) on this table, the first row in the return is just a place holder.
The other two rows show that "ggl_links_url" and "ggl_links_counts" have zero fragmentation, since they were created not long ago.
Submitted by: Administrator
Copyright 2007-2024 by Interview Questions Answers .ORG All Rights Reserved.
https://InterviewQuestionsAnswers.ORG.
https://InterviewQuestionsAnswers.ORG.