Testez par unités vos procédures stockées

Data |
> Data
Testez par unités vos procédures stockées

Testez par unités vos procédures stockées

par Dan Sawyer - Mis en ligne le 21/01/2004

Mettez en forme votre code de procédure

Imaginez ceci : vous venez juste de finir le débogage de la dernière procédure stockée pour la dernière application SQL Server du département. Etes-vous satisfait de votre travail ? Etesvous certain que votre code T-SQL sera à  la hauteur des attentes des utilisateurs ? Quid des fonctionnalités que vous avez placées dans le code ? ...

Imaginez ceci : vous venez juste de finir le débogage de la dernière procédure stockée pour la dernière application SQL Server du département. Etes-vous satisfait de votre travail ? Etesvous certain que votre code T-SQL sera à  la hauteur des attentes des utilisateurs ? Quid des fonctionnalités que vous avez placées dans le code ? Avezvous couvert tous les aspects de la gestion ? Chaque fonction tient-elle ses promesses comme prévu dans tous les scénarios d'exploitation normaux?

Même si vous pouvez répondre par oui à  toutes ces questions, le moment de relâcher votre effort n'est pas encore venu. Qu'en est-il des suites possibles ? Avez-vous testé les conditions d'erreur courantes qui ont causé des problèmes par le passé ? Et qu'en est-il des gestionnaires d'erreurs ? Sont-ils eux-mêmes impeccables ? Si vous vous sentez faiblards dans l'un de ces domaines, il vaut peut-être mieux réévaluer la manière dont vos procédures stockées sont testées par unités.
Contrairement aux tests système que les testeurs professionnels effectuent après qu'une application ait été entièrement codée, le test par unités recherche les erreurs dans des modules individuels, comme les procédures stockées, tout au long du développement de ces modules. Le test par unités n'est pas difficile mais, pour être efficace, il exige du planning, de la documentation et, par-dessus tout, une compréhension partagée de certains principes de base. Donc, avant de plonger dans le processus de test, commençons par dissiper quelques préjugés courants sur le test par unités, qui nuisent souvent à  son efficacité.

Lire l'article
Audit des bases de données MS SQL Server 7 et 2000

Audit des bases de données MS SQL Server 7 et 2000

iNetsoft propose un outil pour l'audit des bases de données MS SQL Server 7 et 2000 : OmniAudit de l'éditeur américain Krell Software.

OmniAudit permet d'identifier de manière automatique et transparente toutes les modifications apportées aux données dans vos bases de données Microsoft SQL Server 7.0 ou 2000.

Lire l'article
Dénicher des profils et des tendances

Dénicher des profils et des tendances

par Christine Y. Mato et Greg Meyer - Mis en ligne le 17/03/2004

Une application géologique de data warehousing et de data mining avec SQL Server 2000

Pour notre master's degree program en Management of Information Systems, nous avons dû réaliser un projet d'analyse visant à  apprendre les nuances du data mining en utilisant des données « réelles ». Notre travail précédent utilisait des données qui avaient été nettoyées afin que les élèves utilisateurs obtiennent tous les mêmes résultats...Notre école avait choisi SQL Server 2000 parce qu'il offre la fonctionnalité d'une base de données d'entreprise associée à  un faible prix et à  une maintenance facile. Nous étions libres de choisir le sujet d'analyse. Beaucoup d'autres élèves ont choisi les analyses de marketing ou de vente, mais comme nous avions un bagage de sciences naturelles, nous avons préféré les données géologiques et biologiques. En créant un data warehouse et en y pratiquant le data mining, nous avons constaté que SQL Server 2000 fournit un moyen rapide pour observer statistiquement les données géologiques.
Les scientifiques du monde entier amassent sans cesse de grandes quantités de données géologiques. C'est à  partir de ces sources que nous avons obtenu nos données échantillon. Comme SQL Server est plus facile à  utiliser que la méthodologie statistique traditionnelle, nous avons décidé de rassembler les sources de données existantes dans un data warehouse SQL Server. Nous avons dû aussi utiliser SQL Server pour vérifier les analyses originales des données géologiques, qui avaient été effectuées par des méthodes statistiques usuelles. Nous avons construit deux data warehouses à  partir de deux sources de données géologiques différentes. Ces sources étaient comparativement petites parce que notre projet était académique ; mais nous pensons que les constatations garderaient toute leur pertinence quelle que soit la taille de l'ensemble de données. Un ensemble de données constitué de plus de 20 fichiers provenait d'une étude de Eastern Continental Shelf qui avait été collectée et analysée par le United States Geological Survey (USGS) entre 1955 et 1970. La seconde base de données contenait les résultats d'une étude des effets de la décomposition de l'enfouissement de six espèces de bois différentes aux Bahamas et dans le Golfe du Mexique. La quantité de bois qui se conserve ou se désagrège dans l'eau dans le monde est phénoménale. La décomposition du bois produit des gaz à  effet de serre, mais ce phénomène cesse quand le bois est enfoui. Cette étude est intéressante parce qu'elle procure aux scientifiques des informations supplémentaires précieuses sur les sources d'émission d'hydrocarbures dans notre atmosphère.

Lire l'article
Actualités – Novembre 2003

Actualités – Novembre 2003

Les actualités SQL Server pour le mois de Novembre

Lire l'article
Beaucoup d’ADO pour rien

Beaucoup d’ADO pour rien

par William Vaughn - Mis en ligne le 17/03/2004

Parmi les moyens que les développeurs désirent le plus, on trouve une manière éprouvée de déterminer les meilleurs moyens pour tester et établir des valeurs NULL dans leurs applications - quel que soit leur langage.Par exemple, quand ils doivent signifier que les dates DateShipped et Date- Died ont été atteintes et ne sont pas connues, la plupart des développeurs de bases de données relationnelles doivent définir ces données et d'autres colonnes de données similaires pour permettre des valeurs NULL. A noter qu'une valeur NULL dans une colonne de données n'est pas la même chose qu'une chaîne vide ou NULL ou tout autre occupant qui peut servir à  montrer que la valeur n'est pas connue. Le langage que vous utilisez peut traiter une chaîne vide ou une valeur placeholder (comme Unknown) comme une chaîne ou une valeur valide et peut stocker un NULL comme une valeur « connue » dans la base de données. Le concept de l'état NULL existe dans les bases de données relationnelles depuis leur création et les NULL ont toujours suscité un traitement spécial. Sans trop m'étendre sur la pertinence qu'il y a à  utiliser des NULL, j'estime que NULL est un meilleur placeholder que BHOM (Beats the Hell Out of Me) que j'utilisais quand j'enseignais la programmation dans l'armée US.
En ADO classique, les développeurs sont confrontés à  des valeurs NULL parce qu'ils ne peuvent pas attribuer un NULL à  une variable numérique, une chaîne, la propriété Value d'un contrôle TextBox, ou tout contrôle qui n'accepte un type de données variant (que l'on peut mettre à  NULL). Si l'on oublie de traiter les valeurs NULL et si l'on essaie d'attribuer un NULL à  un contrôle TextBox, Visual Basic (VB) 6.0 émet un message d'erreur Invalid Use of NULL (94). Mais ADO.NET et Visual Basic .NET prennent mieux en charge les valeurs NULL. Quand on travaille avec le CLR (Common Language Runtime) et les langages .NET, ADO.NET permet de stocker, de définir, et de tester des valeurs NULL de diverses manières - beaucoup plus qu'avec ADO classique. Cet article utilise Visual Basic .NET pour présenter la façon dont ADO.NET et Visual Basic .NET traitent la valeur NULL.

Lire l'article
Diviser et conquérir

Diviser et conquérir

par Edward Whalen, Geoff Langos et Alexander Stamenkovich - Mis en ligne le 26/11/2003

Reconception architecturale + réplication transactionnelle = performance écrasante

Les DBA savent que le premier pas, pour déterminer la viabilité et la capacité à  long terme d'un système, consiste à  effectuer des mesures de supervision des performancesLes DBA savent que le premier pas, pour déterminer la viabilité et la capacité à  long terme d'un système, consiste à  effectuer des mesures de supervision des performances. C'est dans cet esprit que, voilà  plusieurs années, nous avons conçu un programme chargé de suivre les variations des performances dans le système de traitement d'un centre d'appel sous Windows NT et SQL Server 7.0. Au début, nous avons constaté que le Performance Monitor nous donnait bien un programme chargé de suivre les variations des performances dans le système de traitement d'un centre d'appel sous Windows NT et SQL Server 7.0. Au début, nous avons constaté que le Performance Monitor nous donnait bien long terme en prenant des instantanés chaque demi-heure de certaines mesures comme l'utilisation de la CPU et des I/O, le nombre d'utilisateurs et de processus, les traitements de commandes, et les transactions. Nous avons rangé ces mesures dans une base de données SQL Server. L'année où nous avons commencé notre programme de supervision, nous n'avons recueilli les données que pour quelques mois consécutifs. Et constaté ainsi que les données glanées pendant une période aussi courte ne produisaient que des informations à  court terme: trop peu de points de données pour dessiner une tendance. En revanche, l'année suivante, quand nous avons supervisé des tranches de temps plus longues, les données recueillies ont révélé des tendances significatives. En une année, nous avons observé une hausse inquiétante de l'utilisation de la CPU que nous avons attribuée à  une augmentation des fonctions applicatives personnalisées dans le centre et à  l'ajout de nombreux utilisateurs du système.

Lire l'article
Evitez la zone rouge

Evitez la zone rouge

par Gregory A. Larsen - Mis en ligne le 26/11/2003

Suivez ce processus en 2 étapes pour suivre et surveiller l'utilisation des disques

Vos clients ou managers vous ont-ils jamais demandé de combien leurs bases de données avaient grandi au cours de l'année écoulée ? Avez-vous dû prévoir la capacité disque nécessaire pour la prochaine année d'après le taux de croissance moyen de la base de données au cours des 12 derniers mois ?Vos clients ou managers vous ont-ils jamais demandé de combien leurs bases de données avaient grandi au cours de l'année écoulée ? Avez-vous dû prévoir la capacité disque nécessaire pour la prochaine année d'après le taux de croissance moyen de la base de données au cours des 12 derniers mois ? Compte tenu du présent taux de croissance, combien de temps durera votre espace disque non alloué actuel ? Pour répondre à  ce genre de questions sur la croissance de la base de données ou sur l'espace disque, il faut disposer d'un historique de l'utilisation de l'espace touchant à  vos bases de données. J'ai créé un processus qui vous permettra de collecter automatiquement des statistiques d'utilisation de l'espace pour chacune de vos bases de données. Muni de ces chiffres, il vous sera facile d'effectuer un simple calcul de taux de croissance.

Voilà  quelques mois, j'ai décidé d'élaborer un processus de capture d'informations sur l'utilisation de l'espace disque pour chaque base de données d'un système, afin d'en suivre la consommation au fil du temps. Je voulais connaître la quantité d'espace allouée et utilisée pour les fichiers de données et de journalisation. En fait, je recherchais la même information que celle que l'on voit dans le panneau Database Details d'Enterprise Manager quand on consulte l'information Space Allocated, mais il me fallait cette information en code T-SQL. En utilisant SQL Server Profiler, j'ai constaté qu'Enterprise Manager obtient des informations sur l'espace alloué en utilisant deux instructions DBCC. La première, SQLPERF, est documentée ; la seconde, SHOWFILESTATS, ne l'est pas. En exécutant manuellement DBCC SHOWFILESTATS sur chaque base de données et en comparant la sortie obtenue avec celle qu'Enterprise Manager affichait, j'ai vu que cette commande me fournirait l'information sur l'espace disque par base de données.
SQL Server 2000 et SQL Server 7.0 utilisent tous deux ces instructions DBCC pour peupler l'écran Space Allocated d'Enterprise Manager. L'instruction DBCC SQLPERF(LOGSPACE) renvoie des informations sur l'espace de journalisation des transactions - la taille du journal allouée pour chaque base de données en méga-octets et le pourcentage d'espace de journalisation utilisé pour chaque base de données - et ce pour toutes les bases de données. Un simple calcul permet de convertir facilement le pourcentage de l'espace journal utilisé, en méga-octets. Cette instruction DBCC m'a aidé à  connaître l'espace de fichier log que je voulais suivre.
J'ai utilisé l'instruction DBCC SHOWFILESTATS non documentée qui donne des informations sur l'utilisation de l'espace pour les données d'une base de données, pour obtenir le reste des statistiques d'espace disque souhaité. Cette instruction renvoie un enregistrement par fichier de données physique. Chaque enregistrement statistique ainsi obtenu occupe six colonnes : Fileid, FileGroup, TotalExtents, UsedExtends, Name et FileName. On peut utiliser la colonne TotalExtents pour déterminer l'espace total alloué aux données et la colonne UsedExtents pour déterminer l'espacetotal utilisé pour les données. En additionnant les valeurs TotalExtents et UsedExtents de tous les fichiers d'une base de données, puis en convertissant le nombre d'extensions en méga-octets, j'ai calculé l'espace total alloué aux données et l'espace total utilisé pour elles. Ces calculs m'ont fourni l'information d'utilisation de l'espace que je voulais suivre dans le temps. La figure 1 montre un exemple de sortie de la commande DBCC SHOWFILESTATS après qu'on l'aie appliquée à  la base de données maîtresse.
J'ai intégré ces deux instructions DBCC dans un processus qui collecte l'information d'espace par base de données. Il s'exécute périodiquement et enregistre les statistiques sur l'utilisation de l'espace dans une table de base de données. Le processus est constitué d'un job SQL Server Agent qui contient deux étapes. La première exécute une procédure stockée nommée u

Lire l'article
</A width=SQL Server Magazine : Offre spéciale de lancement">

SQL Server Magazine : Offre spéciale de lancement

Il y a quelques jours, est paru le dernier numéro gratuit de SQL Server Magazine.

DBA, DBM, Responsables Bases de données, nous vous avons réservé une offre d'abonnement spéciale.

Certains de votre participation, nous vous donnons rendez-vous pour la prochaine édition de SQL Server Magazine, à  paraître fin Septembre 2003.

Dans l'attente de vous compter parmi nos premiers abonnés, transformez l'essai !

Lire l'article
Réponses rapides

Réponses rapides

par William R. Vaughn - Mis en ligne le 24/06/2003
Quand vous voulez consulter votre base de données, vous commencez par coder une instruction SELECT qui renverra une ou plusieurs lignes - un ensemble de lignes - contenant la réponse à  votre question. Parfois, vous voulez une information exhaustive, mais parfois, une simple réponse par oui ou non. Si vous demandez « Y a-t-il des places disponibles sur le prochain vol pour Cleveland ? », vous ne demandez pas la liste de ces places - mais seulement s'il y en a de disponibles. Dans certains cas, vous voulez obtenir un nombre en réponse à  une requête. Toujours dans notre exemple, vous pourriez demander le nombre de places libres sur cet avion pour Cleveland, parce que vous voulez faire voyager une équipe de football. Là  encore, une telle réponse n'a pas besoin de SQL Server pour renvoyer un ensemble de lignes. Bien entendu, ces requêtes sont bien incapables de juger de la pertinence d'aller à  Cleveland : il faudrait pour cela un système bien plus sophistiqué que tout SGBD connu.

Lire l'article
Droit au but avec ADO .Net

Droit au but avec ADO .Net

par Burton Roberts - Mis en ligne le 24/06/2003

Un rapport tabulaire, ou en colonnes, présente l'information dans des lignes, comme celles d'une base de données. Les en-têtes de colonnes d'un rapport tabulaire correspondent aux noms des colonnes de la table. Un rapport à  tabulation croisée (crosstab en raccourci) est une matrice ou une feuille de calcul à  deux dimensions qui a des critères de recherche horizontaux dans les en-têtes de colonnes et verticaux dans les en-têtes de lignes, à  gauche. Les données que vous recherchez - généralement résumées par une fonction d'agrégation comme SUM(), AVERAGE() ou COUNT() - occupent les cellules intérieures de la matrice.

Lire l'article
myLittleTools.net lance la version 2.0 de myLittleAdmin

myLittleTools.net lance la version 2.0 de myLittleAdmin

myLittleTools.net lance la version 2.0 de myLittleAdmin, outil d'administration en ligne de bases de données SQL Server et MSDE.

Cette nouvelle version a été entièrement ré-écrite.

Lire l'article
Actualités – Juin 2003

Actualités – Juin 2003

Les actualités SQL Server pour le mois de Juin

Lire l'article
Outils client pour Analysis Services

Outils client pour Analysis Services

par l'équipe OLAP d'ASPIRITY - mis en ligne le 19/05/2003

En 1996, Microsoft a fait son entrée dans le monde de l'analyse online en acquérant la technologie de la société israélienne Panorama Software. Sous le nom d'OLAP Services, cette technologie est devenue partie intégrante de SQL Server 7.0 en 1999. Dans SQL Server 2000, le produit a été étendu et rebaptisé Analysis Services. Le dernier produit d'analyse est un puissant fournisseur d'OLAP (online analytical processing), mais dépourvu d'un outil client pour consulter, présenter ou analyser des données. Les clients qui veulent utiliser Analysis Services sans écrire un navigateur client maison doivent par conséquent trouver une application client du commerce adéquate. Pour aider les lecteurs à  choisir l'application client la mieux adaptée à  leurs besoins, nous avons comparé cinq de ces produits. Après qu'au moins deux consultants aient évalué chaque outil, nous avons rapproché et récapitulé les conclusions. Nous nous sommes aussi assurés qu'au moins l'un des examinateurs de chaque outil l'avait utilisé dans un vrai contexte client.

Lire l'article
L’outil Database Hammer

L’outil Database Hammer

par Joseph Isaac Sack - Mis en ligne le 19/05/2003
Je travaille comme administrateur de base de données (DBA) sous contrat dans une grande société de recherche et de fabrication. Mon manager m'a récemment demandé de trouver la meilleure configuration de base de données pour notre nouveau grand SAN (Storage Area Network) RAID 5. Le fournisseur du SAN n'avait pas de documentation quant aux recommandations de placement de fichiers base de données SQL Server 2000 ou aux meilleures pratiques. Il fallait donc faire un test pour voir si en plaçant les fichiers de données et les fichiers log sur des partitions SAN RAID 5 séparées, les performances étaient meilleures qu'en plaçant les deux fichiers sur une partition SAN RAID 5 unique. En règle générale, le fait de placer les fichiers base de données et log sur des matrices séparées (RAID 5 ou RAID 10 pour les données et RAID 1 pour le log) améliore la performance. Comme SQL Server écrit séquentiellement dans le fichier log de transactions, et aléatoirement dans les fichiers de données, la séparation des fichiers réduit le risque de contention de lecture ou d'écriture simultanée.

Lire l'article
Actualités – Mai 2003

Actualités – Mai 2003

Les actualités SQL Server pour le mois de Mai

Lire l'article
Actualités – Mars 2003

Actualités – Mars 2003

Les actualités SQL Server pour le mois de Mars

Lire l'article
La sécurité au moyen des chaînes de propriété

La sécurité au moyen des chaînes de propriété

par Dan Guzman - Mis en ligne le 25/03/2003
Les chaînes de propriété constituent la base d'un système de sécurité à  la fois souple et robuste. L'outil existe depuis les débuts de SQL Server, mais on utilise rarement tout son potentiel parce que même les DBA SQL Server les plus expérimentés ne comprennent pas à  fond le fonctionnement de ces chaînes. Même si les DBA utilisent couramment les chaînes de propriété dans une base de données unique, ils ne les emploient pas toujours sur plusieurs bases de données comme ils le pourraient. On peut utiliser les chaînes de propriété inter-base de données pour alléger l'administration de la sécurité et sécuriser l'environnement. Pour tirer le meilleur parti des chaînes de propriété dans un modèle de sécurité facile à  maintenir avec SQL Server 2000 et 7.0, il faut comprendre quelques concepts et techniques de base.

Lire l'article
Des données sous bonne garde avec Kerberos

Des données sous bonne garde avec Kerberos

par Morris Lewis - Mis en ligne le 25/03/03
Toutes les opérations de sécurité de SQL Server s'appuient sur un double processus : authentification et autorisation. Si le serveur n'a pas toute confiance en l'identité de l'utilisateur et n'est donc pas certain des permissions de celui-ci, toutes les tentatives de contrôle d'accès aux données échoueront. Pendant longtemps, Microsoft a préféré les logins authentifiés de Windows NT à  leurs homologues de SQL Server parce que Windows vérifie plus efficacement l'identité de l'utilisateur, bien au-delà  de la simple comparaison d'un couple compte/mot de passe. Kerberos est le protocole d'authentification par défaut de Windows 2000. Il améliore le protocole d'authentification de NT de plusieurs manières et identifie à  la fois le client et le serveur. Voyons brièvement le principe de fonctionnement de Kerberos et comment il peut protéger les données de vos serveurs SQL Server 2000. Bien entendu, il faut exécuter SQL Server 2000 sur Win2K pour utiliser Kerberos. Je reviendrai plus loin plus en détail sur les exigences en la matière.

Lire l'article
DTS et le Data Warehouse

DTS et le Data Warehouse

par Itzik Ben-Gan - Mis en ligne le 27/02/2003
Il y a 3 ans, j'ai participé à  un cours sur les data warehouse pour formateurs. Stewart McCloud, l'un des architectes DTS (Data Transformation Services) de Microsoft est intervenu sur le sujet de la Data Driven Query (DDQ) task dans SQL Server 7.0. J'ai été fasciné par DTS en général et par la puissante DDQ task en particulier.SQL Server 2000 a amélioré DTS avec de nombreuses nouvelles tâches mais, d'après mon expérience, la DDQ task est l'une des plus difficiles à  apprendre.

Lire l'article
Archive for Server 5.0

Archive for Server 5.0

Princeton Softech présente Archive for Server 5.0, logiciel qui permet d'implémenter une stratégie dédiée aux archives.

Le but est de retirer rapidement des ensembles complets de données utilisées très rarement des bases de données de production.

Lire l'article

Les plus consultés sur iTPro.fr

A lire aussi sur le site

À la une de la chaîne Data