Scripting biedt oneindige mogelijkheden voor het verzamelen van gegevens over de SQL databases.

Hier een overzicht van een aantal handige TSQL scripts.

Weergave van alle tabellen gesorteerd op aantal records

Op zoek naar de grootste tabellen in je SQL database?
Deze query maakt een overzicht van alle tabelllen gesorteerd op het aantal records in deze tabellen.

SELECT T.name AS [TABLE NAME], 
 I.rows AS [ROWCOUNT] 
FROM sys.tables AS T 
 INNER JOIN sys.sysindexes AS I 
 ON T.object_id = I.id 
 AND I.indid < 2 
ORDER BY I.rows DESC

Weergave van de index fragmentatie

Fragmentatie van indexen kan leiden tot performanceverlies bij het uitvoeren van queries. De oplossing kan bestaan uit het reorganiseren of herindexeren van de meest gefragmenteerde indexen. Deze query geeft een overzicht van de fragmentatie per index gesorteerd op de hoogste fragmentatie.

SELECT dbschemas.[name] as 'Schema',
dbtables.[name] as'Table',
dbindexes.[name] as'Index',
indexstats.avg_fragmentation_in_percent,
indexstats.page_count
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS indexstats
INNERJOIN sys.tables dbtables ondbtables.[object_id] = indexstats.[object_id]
INNERJOIN sys.schemas dbschemas ondbtables.[schema_id] = dbschemas.[schema_id]
INNERJOIN sys.indexes ASdbindexes ONdbindexes.[object_id] = indexstats.[object_id]
AND indexstats.index_id = dbindexes.index_id
WHERE indexstats.database_id = DB_ID()
ORDER BY indexstats.avg_fragmentation_in_percent desc

Weergave van laatst bijgewerkte statistiek per object

Statistieken helpen de SQL engine voor het bepalen van het meest optimale queryplan. Via dit queryplan wordt bepaald op welke manier de gewenste informatie zo snel mogelijk aan het client proces kan worden terggegeven.
Actuele statistieken zijn noodzakelijk om te verzekeren dat deze statistiek nog een representatieve afspiegeling is van de huidige datastructuur.

SELECT
        name   AS StatisticsName,   
      STATS_DATE(object_id,   stats_id) AS StatisticsUpdatedDate
FROM sys.stats 
WHERE OBJECT_NAME(object_id) = 'SalesOrderHeader'
ORDER BY name;
GO