Du choix des types de données

Lors de mes participations au forum SQL Server de ce site, je vois souvent des membres qui manipulent des données qui ne sont pas de type chaîne de caractère dans une colonne de ce type.
Cela peut revenir à calculer la racine carrée de carottes, et constitue donc un non-sens.
Voici donc un inventaire de ce que j’ai pu rencontrer jusqu’ici, et qu’il ne faut surtout pas faire pour transformer une base de données en dépotoir de données !

Lire la suite

Créer des captures instantanées de bases de données

Même en phase de développement, il est important de sauvegarder une base de données.
On peut estimer qu’il n’est pas nécessaire de mettre en place une stratégie de sauvegarde, et, comme une erreur arrive vite lors des tests unitaires, il faut que l’on puisse replacer la base de données avec le jeu de données qui a été altéré par un test, sans perdre le travail de plusieurs développeurs.
Si les captures instantanées de bases de données ne permettent pas de protéger complètement l’intégrité d’une base de données, elles sont très utiles si l’on veut se prémunir des erreurs de l’utilisateur pour « restaurer » les valeurs d’une table ou récupérer une procédure stockée …
Lire la suite

Searchable Arguments, ou S-ARGs, ou comment optimiser la clause WHERE d’une requête

Bien que beaucoup d’optimisations peuvent être assurées lors du choix du matériel du serveur de base de données, et lors de la conception d’une base de données, il n’en reste pas moins que les requêtes, avant de nécessiter la recherche d’indexes permettant leur optimisation, peuvent être dans un premier temps mises au point au niveau de leur(s) contrainte(s).
C’est ce que montrent les S-ARGs, ou « Searchable Arguments »

Lire la suite

Nomination MVP

Je viens d’être nominé MVP SQL Server, et je souhaite associer à ce titre, et remercier toutes les personnes qui maintiennent ce site, et qui participent aux forums.

Je tiens à remercier plus particulièrement SQLPro qui m’a parrainé pour l’obtention de ce titre.

Je continuerai à contribuer à ce forum aussi fidèlement que je le fais depuis deux ans, tout simplement parce que cela me fait plaisir, et en me concentrant plus sur la publication d’articles complets.

@++ ;)

ElSuket

Connaître le pourcentage d’avancement d’une tâche sous SQL Server 2005 et 2008

S’il est impossible de connaître l’avancement d’une requête qui est en cours d’exécution dans une instance de SQL Server (cela est normal puisque l’exécution des requêtes n’est pas « linéaire »), il est en revanche possible de connaître l’avancement des tâches suivantes :

Lire la suite

Quelle différence y a-t’il entre une colonne et un champ ? entre une ligne et un enregistrement ? entre une table et un tableau ?

Lors de mes lectures et participations au forum SQL Server de ce site, je vois souvent des participants remplacer le terme ligne par enregistrement ou record, mais aussi le terme colone par le terme champ ou encore field, et enfin le pire : table par tableau, probablement par analogie de la représentation des résultats de requête avec un fichier Excel.

Si certains diront que c’est approximativement la même chose, et que s’attacher a ce type de détails revient à chercher des poils sur les Å“ufs, je vais démontrer que faire cet abus de langage montre qu’on est assez imprécis …

Lire la suite

Récupérer les options de session

Comment connaître la liste des options de session (par exemple SET NOCOUNT ON) que nous utilisons dans la session en cours ou bien dans le contexte d’exécution ?
Ce snippet est valable pour les options suivantes :

– DISABLE_DEF_CNST_CHK
– IMPLICIT_TRANSACTIONS
– CURSOR_CLOSE_ON_COMMIT
– ANSI_WARNINGS
– ANSI_PADDING
– ANSI_NULLS
– ARITHABORT
– ARITHIGNORE
– QUOTED_IDENTIFIER
– NOCOUNT
– ANSI_NULL_DFLT_ON
– ANSI_NULL_DFLT_OFF
– CONCAT_NULL_YIELDS_NULL
– NUMERIC_ROUNDABORT
– XACT_ABORT

Et pas pour les suivantes :

– TEXTSIZE
– LANGUAGE
– DATEFORMAT
– DATEFIRST
– LOCK_TIMEOUT
– ISOLATION LEVEL

Lire la suite