[SQL Server] les connexions à distance sur SQL Server 2008

Par défaut, Windows Server 2008 n’accepte pas les connexions à distances. MSDN fournit un petit guide (ici) des quelques étapes à réaliser afin de les activer. Voici un résumé (en français) ainsi que quelques petites précisions  :

 

  • L’utilisateur qui se connectera à la base de données doit avoir les droits de login et de lecture/écriture sur le serveur. Ces paramètres se trouvent dans les propriétés de l’utilisateur (dans Microsoft Management Studio 2008, dépliez Security puis Logins et cliquez droit sur l’utilisateur concerné : Properties) :
  1. L’autorisation du login est dans Status.
  2. Les droits sont dans User Mapping (db_datareader et db_datawriter).

 

Attention, si vous souhaitez utiliser l’authentification SQL Server plutôt que l’authentification Windows, il faut l’activer : Dans Microsoft Management Studio 2008, cliquez droit sur le serveur : Properties. Dans le menu Security, cliquez sur SQL Server and Windows Authentication mode.

 

  •  
  • Pour communiquer, SQL Server 2008 utilise le port TCP 1433. Pour ne pas être bloqué par le Firewall, il est indispensable d’ajouter une règle pour autoriser le trafic sur ce port. Sous Windows 7, la procédure est la suivante :
  1. Allez dans le panneau de configuration -> Windows Firewall -> Advanced Settings -> Inbound Rules -> New Rule.
  2. Sélectionnez Port.
  3. Spécifiez 1433.
  4. Cliquez sur Next 2 fois et choisissez quand la règle doit s’appliquer.
  5. Donnez un nom à la règle.
  •  
  • Toujours pour communiquer, SQL Server 2008 utilise le modèle TCP/IP désactivé par défaut dans la configuration de SQL Server 2008. Pour l’activer suivez les instructions suivantes :
  1. Start -> All Programs -> Microsoft SQL Server 2008 -> Configuration Tools -> SQL Server Configuration Manager.
  2. Dépliez le noeud SQL Server Network Configuration puis Protocols for <Nom de votre instance>.
  3. Cliquez droit sur TCP/IP puis Enable.
  4. Cliquez droit sur TCP/IP puis Properties.
  5. Dans l’onglet IP addresses, descendez jusqu’au noeud IPAll et entrez 1433 dans TCP Port.
  6. N’oubliez pas de redémarrer le serveur une fois ces modifications faites.

  •  
  • Pour établir la connexion, la machine cliente doit être en mesure de communiquer avec le serveur. N’oubliez pas de vérifier les adresses IP et de pinguer le client vers le serveur et inversement.
  •  
  • Pour vérifier que le serveur accepte les connexions sur le port 1433, utilisez l’outil telnet sur le client avec la commande suivante:

telnet <ip_du_serveur> 1433

 

Si le résultat de la commande indique :

 
Connecting To <ip_du_serveur>…Could not open connection to the host, on port 1433
: Connect failed
 

C’est que vous avez manqué quelque chose dans la configuration réseau du serveur. Si l’écran de la console devient noir, votre serveur SQL peut communiquer sur le port 1433.

Pour connecter dans Microsoft Management Studio 2008, entrez les informations suivantes :

 

[SQL Server] Corriger l’erreur « Cannot resolve the collation conflict between « xxx » and « yyy » in the equal to operation. »

La comparaison de 2 chaines dans une requête est lourd mais parfois inévitable pour comparer 2 colonnes. Si ces 2 colonnes sont dans 2 bases de données diffèrentes, il peut y avoir des conflits de "collation" :

 
Cannot resolve the collation conflict between "French_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation.

 

pour la requête suivante :

 

SELECT table1.colonne1
FROM dbo.table1 AS t1
JOIN dbo.table2 AS t2 ON (t1.colonne1 = t2.colonne2 COLLATE collationTable1);

 

Ici la table1 a pour collation French_CI_AS et table2 a pour collation SQL_Latin1_General_CP1_CI_AS.

La requête correcte est ici :

SELECT table1.colonne1
FROM dbo.table1 AS t1
JOIN dbo.table2 AS t2 ON (table1.colonne1 = t2.colonne2 COLLATE French_CI_AS);

[SQL Server] Microsoft Management Studio 2008 : Eviter d’avoir à recréer une table après modification de sa structure

L’utilisation de Microsoft Management Studio 2008 est très utile  pour la gestion d’une base de données SQL Server 2008.

 

Avec les réglages par défaut, certaines modifications (qui demandent une recréation de la table) sont impossibles. Microsoft Management Studio 2008 propose d’annuler l’enregistrement de la modification ou de sauvegarder le nom la table dans un fichier texte.

 

 

Comme il est dit dans le texte d’information, il faut activer l’option "Prevent saving changes that require the table to be re-created", littéralement "Empêcher l’enregistrement des modifications qui demande une recréation de la table" pour pouvoir supprimer cette sécurité.

Pour activer cette option, ouvrir les options (Tools > Options) puis ouvrir le menu "Designers".

 

 

Décocher simplement la case "Prevent saving changes that require table re-creation" permet de supprimer cette sécurité et les modifications sur la table.

[SQL Server] Faire des backups de base de données sous SQL Server 2008

Avant de faire des modifications sur une base de données, il est fortement recommandé de faire une sauvegarde de la base de données. Pour faire cette opération avec une base de données SQL serveur 2008, utilisez Microsoft SQL Server 2008 Management Studio Express (à télécharger ici).

Une fois installé, lancez le logiciel et connectez vous sur votre base de données SQL Serveur 2008

 

connexion

 

Dans la partie de gauche, déplier le nœud Databases et faite un clic droit sur la base de données que vous souhaitez sauvegarder, séléctionnez Tasks puis Back Up

 

backup

 

Vérifiez que le bouton radio Destination soit bien sur Disk, puis cliquez sur OK. Notez que si la base de données est occupée, la sauvegarde échouera.

 

success

 

Un fichier .bak a été créé dans le dossier

C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup

Pour restaurer cette sauvegarde, faites un clic droit sur le nom de votre base de données, Tasks, Restore et Database.

Sélectionner le bouton radio From Device et choisissez le dossier où se trouve votre fichier .bak.

 

restore

 

Cochez la case dans la colonne Restore et cliquez sur OK.

Ce système de sauvegarde, permet de gérer plusieurs versions d’une base de données dans un seul fichier .bak. Si vous réalisez plusieurs sauvegardes de la même base de données dans le même fichier, il vous sera proposé de choisir la version que vous souhaitez restaurer.

 

multiple

[MySQL] Accélérez vos requêtes SELECT avec SQL_CACHE sur un serveur MySQL

mysql

Petite astuce découverte par Jean-Marie Collin pour accélérer significativement les requêtes SELECT avec MySQL.

 

Requête SQL classique :

 

[code lang= »"sql" »]SELECT * FROM table;[/code]

 

Requête SQL avec SQL_CACHE :

 

[code lang= »"sql" »]SELECT SQL_CACHE * FROM table;[/code]

 

Voici un test réalisé par Jean-Marie Collin sur l’efficacité de ce mot-clé :

 

Affichage des enregistrements 0 – 29 (74 542 total, traitement: 0.0034 sec.)

 
SELECT * FROM `ps_connections_page`

 

Affichage des enregistrements 0 – 29 (74 542 total, traitement: 0.0004 sec.)

 
SELECT SQL_CACHE * FROM `ps_connections_page`

 

Un gain de 3,4ms  une vitesse d’exécution multipliée par 8.5.

 

Pour plus d’informations, rendez-vous sur la page officielle de SQL_CACHE.