samedi 23 septembre 2023

Best practices N° 2 : configurer database mail, les notifications et les alertes

Etre notifié par mail en cas de problème, c'est indispensable !

Ici, nous configurons Database Mail, étape importante des best practices après l'installation d'une instance SQL Server.

Tant qu'à faire, simplifions l'opération en configurant avec un script SQL.

Lire la suite...

vendredi 22 septembre 2023

Best practices N° 1 : tâches de maintenance

A l'installation d'une instance SQL Server, il y a au minimum quelques "best practices" à appliquer.
Cette série d'articles décrit les principales configurations indispensables et les moyens de les mettre en place avec de simples requêtes SQL : tâches de maintenance, alertes, notifications par email, configuration de l'instance, ...

Nous commençons ici par la configuration des tâches de maintenance.

Lire la suite...

samedi 8 juillet 2023

N'oubliez pas les correctifs

On ne le dira jamais assez, il faut installer les correctifs sur vos instances SQL Server.

Microsoft a enfin mis en ligne une page tenue à jour qui recense les correctifs pour toutes les versions de SQL Server, de la version 6.5 (hé oui !) à la version 2022.

Mais bien sûr, si vous utilisez SQL Server 2012 (fin du support étendu le 12 juillet 2023, on y est) ou une version encore plus ancienne, envisagez à court terme la mise à jour vers une version encore supportée par Microsoft.

Pour installer un correctif, pour ma part, j'attends en général une quinzaine de jours avant de l'appliquer, histoire d'éviter des régressions imprévues (il y a même eu des retraits de correctifs en catastrophe dans le passé, quelques jours après leur sortie).

En ce qui concerne SQL Server 2022 par exemple, le correctif Cumulative Update 4 avait quelques bugs qui pourraient se révéler gênants.

En voilà un, heureusement corrigé depuis par le Cumulative Update 5 :

-- Créons une table avec un  index descendant
DECLARE @T table (i integer NOT NULL INDEX ii (i DESC));
INSERT @T (i) VALUES (1), (2), (3);

-- Cette requête renvoie les données en ordre descendant !
SELECT Ascending = T.i
FROM @T AS T
WHERE T.i IN (1, 2, 3)
ORDER BY T.i ASC; -- Mais nous avions demandé un ordre ascendant

-- Cette requête renvoie les données en ordre ascendant !
SELECT Descending = T.i
FROM @T AS T
WHERE T.i IN (1, 2, 3)
ORDER BY T.i DESC; -- Mais nous avions demandé un ordre descendant

-- CU 4 : L'ordre est incorrect avec un index descendant et un prédicat IN sur cette clé

 

samedi 18 mars 2023

Datafrogs Conférence : Recherche Full-Text

Vous trouverez ici les diapositives et les démonstration de notre session sur la recherche en texte intégral lors de la conférence Datafrogs de ce 18 mars 2023.

Slides de la présentation

Démonstrations

 

jeudi 2 mars 2023

Les index filtrés

Depuis SQL Server 2008, il est possible de créer des index filtrés : des index nonclustered avec un prédicat WHERE, qui ne vont indexer qu'une partie de la table.

Bien que peu utilisés (je le constate souvent dans les bases que j'examine), l'utilisation des index filtrés peut nous aider à résoudre certaines problématiques de performances et peuvent réduire le volume de stockage.

Il faut cependant bien comprendre quelles sont les limites à leur utilisation : dans beaucoup de cas, les index filtrés que j'ai rencontré étaient mal utilisés !

Lire la suite...

lundi 27 février 2023

SQL Server 2022 : Database Ledger

Un petit webcast sur Database Ledger, nouvelle fonctionnalité de sécurité de SQL Server 2022. Basé sur la technologie de la blockchain, cela permet d'assurer la traçabilité des modifications et de garantir l'intégrité des données, pour des bases de données à haute sécurité. Dans la démo, j'ai joué au vilain pirate pour altérer ma base de données...

jeudi 23 février 2023

SQL Server 2022 : bug Filestream

En construisant mes démos, je suis tombé sur ce bug : lorsqu'on tente d'ajouter un filegroup filestream à une base de données, on obtient le message d'erreur suivant.

Msg 35221, Level 16, State 1, Line 2

Could not process the operation. Always On Availability Groups replica manager is disabled on this instance of SQL Server. Enable Always On Availability Groups, by using the SQL Server Configuration Manager. Then, restart the SQL Server service, and retry the currently operation. For information about how to enable and disable Always On Availability Groups, see SQL Server Books Online.

Cela n'a bien entendu aucun rapport avec Always On...

Ce problème (entre autres) est corrigé avec le Cumulative Update #1, qu'il est donc urgent de télécharger ici.

 

 

mercredi 8 février 2023

Question : Random values

Question : Aurais-tu une technique pour qu’au sein d’un SELECT, la fonction Rand() change de valeur sur chaque ligne ? Car malheureusement, elle garde la même valeur sur chaque ligne...

Réponse : effectivement, pour un UPDATE SET col = RAND(), la fonction n'est effectuée qu'une seule fois et la valeur sera la même pour toutes les lignes. Mais il existe une solution, avec la création d'une vue et d'une fonction, qui forcera la fonction à s'exécuter pour chaque ligne.
 

-- Création d'une vue
CREATE VIEW [dbo].[V_RAND] AS
SELECT RAND() AS RAND  
GO
-- Création d'une fonction
CREATE FUNCTION [dbo].[F_GET_RAND] ()
    RETURNS FLOAT
    AS
    BEGIN
      RETURN (SELECT RAND FROM V_RAND)
    END;
GO

UPDATE MATABLE SET MACOLONNEFLOAT = dbo.F_GET_RAND()

 

dimanche 20 novembre 2022

Installations rapides

Si comme moi vous déployez fréquemment des instances SQL Server pour des tests divers et que vous êtes pressé, le plus rapide est de le faire avec un fichier de configuration.

Dans cet article, un exemple de fichier de configuration compact pour une installation simple de SQL Server 2022.

Lire la suite...

mercredi 16 novembre 2022

SQL Server 2022 est disponible

Le 16 novembre 2022 au matin (Pacific Time), et donc ce soir ici : c'est la sortie officielle de SQL Server 2022 !

Les éditions gratuites, express et développeur peuvent être téléchargées dès maintenant.
Les éditions Standard et Entreprise vont être elles aussi disponibles dès aujourd'hui, à travers les programmes de licences en volume.

Déjà installé, pour ma part... Amusant : la release est datée du 8 octobre...

 

 

 

Bon téléchargement !

- page 2 de 19 -