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é.
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
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.
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.
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.
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
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 !
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.
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.
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
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.
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.
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.
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.
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.
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'articleLes plus consultés sur iTPro.fr
- De manager d’équipe à manager d’agents IA : le management change de dimension
- Travail hybride : pourquoi les salariés français restent les plus attachés au bureau en Europe
- Pourquoi la souveraineté des données relève du contrôle et non de la géographie
- L’incident OpenAI–Hugging Face n’est pas la révolution que vous imaginez
Articles les + lus
Les fuites de données explosent en France, désormais pays le plus touché d’Europe
Rançongiciels et IA : les attaques gagnent en efficacité en ciblant l’humain
Pourquoi les PME ne peuvent plus se permettre de négliger la sécurité de leur parc d’imprimantes
Deepfakes : la France dans le top 10 des pays les plus touchés par les fraudes
Cybersécurité : les entreprises françaises réclament un durcissement inédit de la réglementation
À la une de la chaîne Data
- Les fuites de données explosent en France, désormais pays le plus touché d’Europe
- Rançongiciels et IA : les attaques gagnent en efficacité en ciblant l’humain
- Pourquoi les PME ne peuvent plus se permettre de négliger la sécurité de leur parc d’imprimantes
- Deepfakes : la France dans le top 10 des pays les plus touchés par les fraudes
- Cybersécurité : les entreprises françaises réclament un durcissement inédit de la réglementation
