Jointure, transitivité et simplification de requête

Mis en avant

Au cours d’une discussion hier avec un de mes amis « oraclien » nous avons débattu sur les différents comportements d’optimisation entre Oracle et SQL Server sur un cas bien précis. Vous pouvez lire son billet ici et trouver un script pour reproduire le problème par vous même. J’ai donc décidé d’écrire un billet à mon tour parce que cette discussion avait introduit des concepts intéressants que je voulais approfondir côté SQL Server.

> Pour lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

sp_cursor_fetch et performance

Mis en avant

Il y a quelques semaines lors d’un audit, mon client me parlait de problèmes de performances identifiés uniquement sur la phase de login de son application. Après des échanges divers entre le client et l’éditeur de logiciel, nous avons constaté que le problème ne se produisait pas lorsque l’application et l’instance SQL Server étaient installées sur le même serveur (moins d’une seconde avec la configuration de l’éditeur contre 10 secondes avec celle du client). A vrai dire, mon client ne possédait pas tout à fait la même configuration qui comprenait un serveur applicatif et un serveur de bases de données distant. Imaginez la déception du client lorsqu’il s’est aperçu que sa configuration matérielle était de loin plus puissante que celle de l’éditeur de logiciel pour ces tests avec un même volume données.

> Pour lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

N’utilisez pas les paramètres par défaut AUTOGROW!

Mis en avant

Au cours de mes audits clients, j’ai souvent vu les paramètres d’expansion de fichiers par défaut sur les bases de données utilisateurs et comme vous le savez ceci n’est pas forcément une bonne pratique. Laissez moi vous raconter une histoire drôle vécue qui concerne une situation extrême avec un fichier journal et ses paramètres par défaut.

> Pour lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Utilisation des snapshots VSS et SQL Server – Part I

Mis en avant

Ceci est probablement une série de billets concernant les snapshots VSS et SQL Server. Laissez moi introduire le sujet avec cette anecdote:

Il y a quelques temps, nous avons implémenté une stratégie de sauvegarde chez un de mes clients basée sur une combinaison FULL, DIFF et sauvegarde du journal des transactions. Aucun problème pendant un moment et un jour mon client m’appelle en me disant que depuis un certain temps, la sauvegarde différentielle en place ne se faisait plus correctement avec le message d’erreur suivant ..

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Quand tempdb peut être à l’origine de problèmes indirects

Mis en avant

Il y a quelques semaines, j’ai discuté d’un cas intéressant avec un de mes amis qui a fait face à un problème étrange (en surface) avec une instance SQL Server qui a manqué de threads de travail. Je ne peux malheureusement pas dévoiler le vrai contexte client ici mais j’ai décidé de reproduire le même problème afin de partager avec vous certaines informations intéressantes. La prochaine partie de ce blog se réfère uniquement à mes propres tests qui représentent dans sa plus grande partie le problème cité ci-dessus.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Une histoire sympathique avec les options de recompilation au niveau requête

Mis en avant

La nuit dernière, j’ai eu une discussion intéressante avec un de mes amis MVP SQL Server qui a rencontré une situation étrange où une requête qui utilisait une option de recompilation produisait un plan d’exécution qui l’a désappointé. Ce dernier m’a dit qu’il était possible de simuler cette même situation en utilisant la base de données AdventureWorks et la table Sales.SalesOrderHeader.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

S’aventurer dans l’insertion en masse d’un fichier d’erreur SQL Server et l’ordre des données

Mis en avant

N’avez-vous jamais tenté une insertion en masse d’un fichier d’erreur SQL Server pour en extraire les informations utiles dans un rapport par exemple?
Si tel est le cas, vous vous êtes probablement demandé comment garder l’ordre du fichier dans une requête sans avoir une colonne de référence pour l’ordre des données. Il existe bien entendu des solutions mais ce n’est pas le but de ce billet. A la place, je voudrais partager avec vous une discussion intéressante sur le forum developpez.com concernant l’assurance d’obtenir l’ordre les données dans un fichier d’erreur SQL Server avec une simple requête SELECT sans spécifier la clause ORDER BY.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Analyser facilement un rapport de processus bloqués

Mis en avant

Quel DBA n’a jamais eu à faire face à un problème de performance provoqué par des blocage de plusieurs processus? En réalité, je suis sûr que non. Résoudre un problème de blocage de processus n’est pas toujours simple et peut exiger d’utiliser des outils qui simplifieront cette tâche. Il y a quelques mois, j’ai eu à gérer un tel scénario chez un de mes clients avec une cascade de processus bloqués dans une période donnée.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Considérations sur le placement de fichiers des bases de données SQL Server avec Netapp et SnapManager

Mis en avant

Lorsqu’on installe SQL Server, on a bien sûr à considérer comment placer les fichiers de bases de données. A ce stade, il est probable que vous suivrez les bonnes pratiques bien connues ou les guidelines fournis pour Microsoft mais êtes vous réellement au courant de ceux fournis par les vendeurs de stockage? Parlons en dans ce billet.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Windows failover cluster: Basculement automatique ou basculement manuel ?

Mis en avant

During the night, you receive an alert concerning your SQL Server failover cluster or your availability groups. You’re in panic because the message displayed is « a failover has occured .. see the log for more details » …

Durant la nuit, vous recevez une alerte concernant un basculement d’une de vos instances SQL Server FCI ou de vos groupes de disponibilités. Mode panique !!! parce que le message qui vous arrive est le suivant : « a failover has occured .. see the log for more détails » … Bien sûr vous tentez de rester calme (après tout le basculement automatique est fait pour cela non ?) et après avoir été connecté à votre environnement vous ne trouvez rien … Que s’est-il passé ? Peut être qu’une intervention manuelle est à l’origine de cette alerte et vous n’êtes pas au courant.

Lire la suite (en anglais)

David BARBARIN (Mikedavem)
MVP et MCM SQL Server