Je vous propose ici une fonction en pur T-SQL qui permet de retourner les valeurs que l'on trouve entre les virgules d'une chaîne en contenant un plus ou moins grand nombre.
Celle-ci repose sur une table de nombres, ce qui permet d'éviter de boucler par un WHILE, qui s'avère être contre-performant, SQL n'étant pas un langage itératif.
Vous devez être identifié pour poster un commentaire.
, elsuket Fonctionnalité pratique pour ne pas dire nécessaire, l'Agent SQL Server est le planificateur de tâches de SQL Server.
Il permet d'effectuer des tâches très variées, qui vont de l'exécution d'une procédure stockée à celle d'un script PowerShell en passant par celle d'un package SQL Server Integration Services et bien d'autres, et ce, à intervalles de temps réguliers et planifiés.
Côté sécurité, cette fonctionnalité n'est pas en reste, puisque tout job a un propriétaire.
Il est donc requis de vérifier que le propriétaire d'un job à les droits nécessaires à l'exécution de celui-ci.
Cela peut se faire de deux façons : par l'interface graphique de SQL Server Management Studio, ou bien en requêtes.
Voyons cela plus en détails :
Vous devez être identifié pour poster un commentaire.
, elsuket Bien qu'incomplets en termes de fonctionnalités par rapport à une procédure stockée qui ferait la même chose, les plans de maintenance s'avèrent très simple à développer et à déployer dans un temps court. Je pense notamment à l'impossibilité de compresser des sauvegardes sous SQL Server 2008.
Comme beaucoup de choses effectuées à l'aide des interfaces graphiques proposées par SQL Server Management Studio, les effets produits par l'exécution d'une tâche ne sont pas toujours détaillés. Le propriétaire d'un plan de maintenance n'y échappe pas et est écrasé à chaque modification du plan.
Voici donc comment le trouver, et le changer.
Vous devez être identifié pour poster un commentaire.
, elsuket Voici quelques procédures stockées systèmes et quelques suites de clics dans SQL Server Management Studio pour gérer un peu plus finement les fichiers d'information et d'erreur du moteur de bases de données de SQL Server, et de l'Agent SQL Server.
Vous devez être identifié pour poster un commentaire.
, elsuket Voici quelques requêtes simples qui montrent l'historique de toutes les sauvegardes de toutes les bases de données ou d'une base de données en particulier
Vous devez être identifié pour poster un commentaire.
, elsuket Introduite avec SQL Server 2008, la gestion basée sur les stratégies est une fonctionnalité qui permet d'évaluer et éventuellement de mettre en conformité des instances de SQL Server.
Cela simplifie quelque peu la gestion d'un nombre important d'instances SQL Server, en permettant de s'assurer que toutes les instances, bases de données ou objets sont en conformité, et ce de façon extrêmement élémentaire.
Autre avantage : c'est compatible avec les versions antérieures de SQL Server.
Cette fonctionnalité est livrée avec 50 stratégies par défaut, qualifiées de "meilleures pratiques", mais qui ne sont pas préinstallées directement. Voici comment les importer ...
Vous devez être identifié pour poster un commentaire.
, elsuket Comme il est important de savoir si la collation utilisée par une colonne, une base de données ou une instance SQL Server est sensible à la casse ou aux accents, ou ..., voici quelques requêtes qui permettent d'obtenir l'information très simplement :
Vous devez être identifié pour poster un commentaire.
, elsuket Voici un petit lot de requêtes qui permet de connaître le nombre de Virtual Log Files en cours d'utilisation ...
Vous devez être identifié pour poster un commentaire.
, elsuket Je vois encore énormément d'erreurs à ce sujet, chez les développeurs avec qui je travaille et j'ai travaillé, mais aussi sur le forum.
Voici donc la démonstration que NULL en SQL n'est pas une valeur ...
Vous devez être identifié pour poster un commentaire.
, elsuket Voici un lot de requêtes qui retourne quelques caractéristiques intéressantes des statistiques d'une table, notamment :
- la quantité de données, en MB, qui a été échantillonnée
- la date de dernier échantillonnage
- le nom de la statistique, ainsi que les colonnes sur lesquelles la statistique échantillonne
- le nombre de lignes échantillonnées lors du dernier échantillonnage
- la densité (inverse de la sélectivité)
- le nombre de modifications dans les colonnes de la statistique depuis le dernier échantillonnage
- le SRT (Statistic Recomputation Threshold : seuil de ré-échantillonnage de la statistique)
C'est le nombre de modifications que les colonnes de la statistique doivent subir avant d'être ré-échantillonnées.
- quelques comparaisons par rapport au nombre réel de lignes de la table
Vous devez être identifié pour poster un commentaire.
, elsuket L'option de session SET STATISTICS IO ON permet de révéler la quantité d'activité générée sur les disques par une requête.
Comme je dépouille assez souvent le résultat qui s'affiche dans la console de SQL Server Management Studio, j'en suis venu à écrire une macro qui fait ce travail pour moi en un clin d’œil ![]()
Vous devez être identifié pour poster un commentaire.
, elsuket Voici comment transformer un fichier blg généré par PerfMon en CSV en vue de l'intégrer dans une table de base de données (et pourquoi pas faire un rapport à partir de là ? )
Vous devez être identifié pour poster un commentaire.
ElSüket
| Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Quand on parle de la fragmentation physique des indexes, on parle aussi de fragmentation externe. Celle-ci se "produit" lorsque l'ordre logique des pages de l'index est incorrect. Les nouvelles valeurs de clé de l'index sont alors insérées dans de nouvelles pages d'index, qui désordonnent l'ordre original de la clé de l'index.
Quand on parle de fragmentation logique de l'index, on parle aussi de fragmentation interne : c'est le cas lorsque la quantité de données stockée dans les pages de l'index est plus petite que la quantité maximale de données que peut stocker une page.
ElSuket
Voici une requête qui nous permet de retrouver pour tout index :
- la liste de ses colonnes clé
- la liste de ses colonnes incluses
- la définition de son filtre
- le script de création de cet index
Voici une petite requête qui permet de lister les colonnes de tous les index d'une base de données, avec leur type et l'ordre des colonnes dans la clé de l'index :
]suite
Il est possible qu'un jour vous trouviez dans les journaux de SQL Server le libellé suivant :
SQL Server has encountered n occurrence(s) of cachestore flush for the (partie du cache de plans) cachestore due to some database maintenance or reconfigure operations"
Ce message n'apparaît qu'à partir du SP2 de SQL Server 2005, et il est écrit par intervalles de 5 minutes.
La purge du cache de plans peut se produire dans les cas suivants :
]suite
Une nouvelle fonctionnalité intéressante, introduite avec SQL Server 2005, est la recherche d’indexes manquants.
Elle permet, de façon très simple, de trouver les indexes manquants qui pourraient simplifier le travail
du moteur de base de données s’ils étaient posés sur des tables de base ou des vues indexées.
Néanmoins, cette fonctionnalité comporte quelques limitations, qui doivent être prise en compte avant qu’on
ait décidé de créer l’index conseillé par SQL Server.
Comme vous le verrez, plusieurs sujets sont connexes à cet article, mais nous ne les aborderons pas ici.
Ils seront l’objet de prochains articles.
Si les index représentent l'optimisation la plus simple à mettre en place, on souhaite néanmoins conserver le minimum d'entre-eux, car leur maintenance lors de l'exécution de requêtes de modifications de données (INSERT, UPDATE, DELETE) peut être coûteuse, surtout sur des tables volumineuses.
Voyons comment collecter cette information ...
]suite
Voici une petite procédure stockée qui permet de connaître l'état physique des index (nombre de pages du niveau feuille, fragmentation et taux d'utilisation des pages) en même temps que la façon dont ils sont utilisés (nombres de seeks et de scans, ...).
Elle est utilisable pour collecter ces statistiques sur l'ensemble d'une base de données, ou bien sur une table en particulier
]suite
Voici une petite procédure stockée que l'on peut exécuter régulièrement dans un job pour défragmenter les indexes de toutes les bases de données, en fixant les seuils de nombre de page et de pourcentage moyen de fragmentation
Outre sa principale fonctionnalité de gestion d'exécutions, l'Agent SQL Server comporte quelques fonctionnalités intéressantes concernant la gestion de son historique.
]suite
S'il est une valeur intéressante à suivre pour le performances d'un serveur, c'est bien le Buffer Cache Hit Ratio, ou Taux d'accès au cache des tampons, car celui-ci est un rapport du nombre de pages lues en RAM par rapport au nombre de pages lues à partir des disques.
Voici une petite requête pour trouver sa valeur :
Voici une procédure stockée pour :
- vérifier une adresse IP
- chercher si celle-ci est privée
- chercher la classe de cette adresse IP
Nous allons voir comment on peut exécuter n'importe quelle procédure stockée dès le démarrage de SQL Server, à l'aide de la procédure stockée sp_procoption
Il est souvent demandé s'il est possible de concaténer les valeurs d'une colonne dans une variable, éventuellement en les séparant avec un symbole de ponctuation.
Voici comment faire, sans curseur ni expression de table commune ...
]suite
Comment connaître simplement l'état d'un service ?
Est-il possible d'arrêter et de démarrer un service avec une requête ?
Voici une petite requête qui permet de voir toutes les restaurations de bases de données d'une instance ...
Pourquoi ne pas créer une table de dates pour se faciliter les recherches dans des tables suivant la colonne de type date qu'elles contiennent ?
On peut vous demander par exemple de rechercher la quantité d'eau consommée par un parc de machines pour la deuxième semaine de chaque mois d'une année.
Imaginez un peu la complexité de la requête à écrire ...
Voyons comment on peut résoudre cette demande très facilement en créant une table de dates ...
Certains me désignent sur le forum SQL Server comme l'homme qui murmure à l'oreille des CTE.
En voici donc une nouvelle !
Voici une petite fonction qui permet de vérifier la présence d'un caractère qui n'est pas supporté par la norme ASCII dans une chaîne de caractères ...
Voici quelques exemples simples de code qui montrent que sous SQL Server 2008, on peut non seulement se passer des sempiternelles deux lignes de code nécessaires jusqu'en version 2005 pour déclarer et affecter d'un valeur une variable, mais on peut aller encore plus loin ...
Pour effectuer une revue de code ou pour gérer des versions de code en phase de développement, il peut être intéressant d'exporter les codes des modules SQL vers un fichier.
Voyons comment réaliser cela, à l'aide de l'utilitaire en ligne de commande BCP ...
Copyright © 2000-2012 - www.developpez.com