Afficher la fragmentation des index d'une base de données
2018-04-23 18:30:25
2018-04-23 18:30:25
Requête permettant d'afficher la fragmentation des index d'une base de données.
SELECT S.[name] AS 'Schema', T.[name] AS 'Table', I.[name] AS 'Index', ROUND(P.[avg_fragmentation_in_percent],0) AS '%', P.[page_count] AS 'Nombre de pages' FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS P INNER JOIN sys.tables AS T ON T.[object_id] = P.[object_id] INNER JOIN sys.schemas AS S ON T.[schema_id] = S.[schema_id] INNER JOIN sys.indexes AS I ON I.[object_id] = P.[object_id] AND P.[index_id] = I.[index_id] WHERE P.[database_id] = DB_ID() ORDER BY P.[avg_fragmentation_in_percent] desc
Lister les tables d'un base de données en comptant les lignes
2018-01-17 15:01:07
2018-01-17 15:01:07
Voici une petite requête qui utilise les tables systèmes pour lister les tables d'un base de données, en comptant les lignes et les colonnes :
SELECT T.[name] AS 'Nom de la table' ,T.[max_column_id_used] AS 'Nombre de colonnes' ,P.[row_count] AS 'Nombre de lignes' FROM sys.tables T INNER JOIN sys.dm_db_partition_stats AS P ON P.[object_id] = T.[object_id] WHERE P.[index_id] BETWEEN 0 AND 1 AND T.[name] NOT IN ('dtproperties','sysdiagrams') ORDER BY T.[name] ASC
Échappement des caractères underscore et pourcentage dans la clause LIKE
2018-01-11 11:32:15
2018-01-11 11:32:15
Dans SQL Server, la clause LIKE permet une recherche à partir d'une expression. Le caractère "_" est utilisé comme indiquant que l'on accepte n'importe quel caractère à la place du "_".
Par exemple :
Pour échapper les caractères % et _ dans la clause LIKE, il faut les entourer de [ ]. Par exemple, 'T[_][%]A%' permettra de rechercher les chaînes commençant par 'T_%A'.
Par exemple :
SELECT * FROM MaTable WHERE MaColonne LIKE 'A_Z'
Cette requête permet de sélectionner tous les enregistrement où MaColonne commence par A, suivi de n'importe quel caractère, et ensuite Z. Donc si MaColonne = 'ABZ', il sera sélectionné, par contre si MaColonne = 'ABBZ', il ne sera pas sélectionné.Pour échapper les caractères % et _ dans la clause LIKE, il faut les entourer de [ ]. Par exemple, 'T[_][%]A%' permettra de rechercher les chaînes commençant par 'T_%A'.
CREATE INDEX failed because the following SET options have incorrect settings: 'ARITHABORT'
2017-10-02 16:53:15
2017-10-02 16:53:15
Erreur :
CREATE INDEX failed because the following SET options have incorrect settings: 'ARITHABORT'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or filtered indexes and/or query notifications and/or XML data type methods and/or spatial index operations.
Cette erreur provient généralement d'une base de données SQL Server 2000 que l'on a migré vers une version plus récente.
Pour ne plus avoir cette erreur, vérifier les valeurs des paramètres suivants :
- Properties > Options > Compatibility level = SQL Server 2000 (80) ?
- Properties > Options > Arithmetic Abort Enabled = False ?