See a list of all the indexes in the database
select * from sys.dm_db_index_physical_stats(null,null,null,null,null)
Index fragmentation
SELECT DB_NAME() AS DatabaseName, Object_name(i.object_id) AS TableName, i.index_id, name AS IndexName, avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, 'Limited') AS ips INNER JOIN sys.indexes AS i ON ips.object_id = i.object_id AND ips.index_id = i.index_id ORDER BY avg_fragmentation_in_percent desc
Show filegroups and db files
select * from sys.filegroups select * from sys.database_files
Additional commands
SET SHOWPLAN_XML OFF GO SET STATISTICS PROFILE OFF SET STATISTICS IO ON -- clear query plans dbcc freeproccache; -- clear buffer cache dbcc dropcleanbuffers;
Examples using AdventureWorks2016
use AdventureWorks2016; select pp.name from Production.Product pp join Sales.SalesOrderDetail ss on pp.ProductID = ss.ProductID join Sales.SalesOrderHeader oh on ss.SalesOrderID = oh.SalesOrderID; select check_clause from INFORMATION_SCHEMA.CHECK_CONSTRAINTS where CONSTRAINT_NAME = 'CK_Employee_SickLeaveHours'; SET STATISTICS PROFILE on SELECT sql_text.text, last_execution_time, creation_time FROM sys.dm_exec_query_stats AS stats CROSS APPLY sys.dm_exec_sql_text(stats.sql_handle) AS sql_text order by last_execution_time DESC SELECT * FROM sys.dm_exec_query_transformation_stats EXEC sys.sp_updatestats @resample = '' -- char(8) SET TRANSACTION ISOLATION LEVEL REPEATABLE READ BEGIN TRANSACTION SELECT TOP 100 * FROM AdventureWorks2016CTP3.Person.Person-- WITH(TABLOCKX); SELECT resource_type, request_mode, COUNT(*) AS lock_count FROM sys.dm_tran_locks WHERE request_session_id = @@SPID GROUP BY resource_type, request_mode; ROLLBACK DBCC SHOW_STATISTICS ('Person.Person', 'IX_Person_LastName_FirstName_MiddleName') SELECT * FROM sys.stats WHERE OBJECT_ID = OBJECT_ID('Person.Person') ORDER BY stats_id; DBCC SHOW_STATISTICS ('Person.Person', 'PK_Person_BusinessEntityID') DBCC SHOW_STATISTICS ('Person.Person', 'IX_Person_LastName_FirstName_MiddleName') SELECT * FROM Person.Person WHERE LastName = 'Alonso'; SELECT * FROM Person.Person WHERE LastName = 'Acca';
See the query plans
SELECT databases.name, dm_exec_sql_text.text AS TSQL_Text, dm_exec_query_stats.creation_time, dm_exec_query_stats.execution_count, dm_exec_query_stats.total_worker_time AS total_cpu_time, dm_exec_query_stats.total_elapsed_time, dm_exec_query_stats.total_logical_reads, dm_exec_query_stats.total_physical_reads, dm_exec_query_plan.query_plan FROM sys.dm_exec_query_stats CROSS APPLY sys.dm_exec_sql_text(dm_exec_query_stats.plan_handle) CROSS APPLY sys.dm_exec_query_plan(dm_exec_query_stats.plan_handle) INNER JOIN sys.databases ON dm_exec_sql_text.dbid = databases.database_id WHERE dm_exec_sql_text.text LIKE '%t_item_master%';