SQLPAC ?

SQLPAC est un site francophone pour francophones consacré aux Systèmes de Gestion de Bases de Données (SGBD) transactionnels et décisionnels.

Sybase Sybase
MS SQL MS SQL Server
Oracle Oracle
MySQL MySQL

En savoir plus ...

Contributeurs et auteurs

Lettres d'information

Les dernières lettres d'information publiées :

Accueil  Les 20 dernières publications

À la une de SQLPAC

Sybase ASE 15.0.3 - diagnostic et optimisation, cas pratique

Posté le 22/01/2012 sybaseLe guide ASE 15.0.2 - Guide pratique sur les outils de diagnostic et d'optimisation » paru en 2009 sur SQLPAC présentait les commandes utiles nécessaires au diagnostic de traitements.

La présente note va mettre en musique ces outils de diagnostic dans l'étude d'un cas pratique détaillé avec Sybase ASE 15.0.3, le but étant de se familiariser avec les outils et leur résultat. Le cas pratique aborde la dégradatation en performance d'une procédure stockée et l'analyse adopte la méthodologie ci-dessous :

1- Analyse du contexte courant d'exécution
2- Collecte des informations du contexte
3- Analyse des coûts des plans d'exécution
4- Analyse des coûts des jointures

Parmi les commandes, fonctions et utilitaires introduits dans cet article :

- plan d'exécution courant de la procédure avec sp_showplan
- événements d'attente (sp_dba_getwe)
- données en cache (sp_dba_getobj)
- taille des objets avec sp_spaceused et sp_dba_statsdetail
- indexes avec sp_helpindex
- fragmentation et sélectivité avec l'utilitaire optdiag
- pertinence des statistiques (fonction datachange)
- set showplan on
- set statistics time on, set statistics io on
- set statistics plancost et le traceflag 9529
- set option show_search_engine
- set option show_pio_costing
- set option show_lio_costing

Sybase ASE 15.0.3 - diagnostic et optimisation, cas pratique »

Les utilitaires awk, nawk et gawk - Tutoriel

Posté le 27/11/2011 bashLes utilitaires awk, nawk et gawk (GNU Awk) sont des parseurs de fichiers textes très simples à utiliser et permettent de manipuler efficacement des fichiers textes de données délimitées par un caractère. Avec une syntaxe très facile à appréhender, les opérations pour filtrer des lignes, filtrer des colonnes, enrichir le contenu, convertir des formats, calculer des agrégats (moyennes, sommes par exemple) etc... deviennent un jeu d'enfants avec ces utilitaires. awk, gawk et nawk ne diffèrent que pour quelques fonctionnalités très avancées qui ne sont pas abordées ici.

awk est l'utilitaire qu'il faut utiliser sans hésiter pour parser très efficacement et en quelques secondes des fichiers de logs complexes par exemple.

Voici un tutoriel pour prendre en main l'utilitaire nawk à travers l'exemple, et contrairement aux idées reçues il est également disponible sur les plateformes Windows

Les utilitaires awk, nawk et gawk - Tutoriel »

Sybase ASE, sauvegardes et restaurations (dump / load)

Posté le 21/11/2011 sybaseUn retour salvateur sur les sauvegardes et restaurations (dump/load) avec Sybase Adaptive Server Enterprise pour les novices ou ceux qui souhaitent mieux comprendre les mécanismes et les plans de sauvegarde avancés.

Au programme :

  • le démon backupserver
  • réaliser une sauvegarde simple
  • réaliser des restaurations en évitant les écueils des différences de structures
  • réaliser des plans avancés de sauvegardes avec les journaux de transactions
  • lire les en-têtes des dumps et lire directement des dumps avec la base de données archive

Sybase ASE, sauvegardes et restaurations (dump / load) »

Compilation et installation de SQLite 3 sur Sun Solaris 10 x86

Posté le 05/09/2011 sqliteLes bases de données SQLite 3, mobiles et indépendantes des plateformes, sont embarquées pour le fonctionnement interne de nombreux produits (Google Chrome, Smartphones, Apache Subversion...).

Cet article présente la compilation de SQLite 3 sur une plateforme Sun Solaris 10 X86 64 bits avec SunStudio 12.1.

2 particularités lors de la construction : la librairie readline 6.2 64 bits est activée pour bénéficier du rappel des commandes SQL et les extensions optionnelles des indexes R*Tree et FTS (Full Text Search) sont ajoutées.

Des tests de créations de bases de données SQLite 3 physiques et en mémoire (In Memory) sont menés à la fin de la compilation.

Compilation et installation de SQLite 3 sur Sun Solaris 10 x86 »

Sybase Adaptive Server Enterprise 15.5 et sqsh 2.1.7 sur Sun Solaris 10 X86 64 bits

Posté le 04/09/2011 sybaseSQSH (prononcer skwish) est un remplaçant très pratique de l'utilitaire isql fourni par Sybase. Il permet d'intégrer du shell dans les commandes SQL : historique des commandes, variables, redirections, pipes, fonctions, combinaison avec les utilitaires awk, grep etc...

La compilation de sqsh 2.1.7 avec SunStudio 12.1 sur une plateforme Solaris 10 X86 en 64 bits avec Sybase Adaptive Server Enterprise 15.5 64 bits nécessite quelques adaptations assez importantes, adaptations qui font l'objet de cet article.

sqsh 2.1.7 est compilé avec la librairie GNU readline 6.2 64 bits, librairie qui permet d'activer l'historique des commandes dans sqsh.

Un tour d'horizon de toutes les fonctionnalités de sqsh n'est pas l'objectif de cet article, la documentation officielle de sqsh est très complète, toutefois 2 fonctionnalités très pratiques à noter : les fonctions et la combinaison sqsh avec bcp sur les jeux de résultats.

Sybase Adaptive Server Enterprise 15.5 et sqsh 2.1.7 sur Sun Solaris 10 X86 64 bits »

FreeType 2.4.6, compilation sur Sun Solaris 10 X86

Posté le 29/08/2011 sunFreeType est un moteur portable de polices de caractères utilisé dans de nombreux produits graphiques comme libgd, cairo, gnuplot...

La compilation de FreeType 2.4.6 en 64 bits sur Sun Solaris 10 x86 avec Sun Studio 12.1 est relativement simple. Unique particularité lors de la compilation : FreeType 2.4.6 impose GNU make 3.80 minimum ou makepp 1.19 minimum lors de la compilation

L'installation est réalisée dans un répertoire personnalisé afin de ne pas polluer les répertoires systèmes /usr.

FreeType 2.4.6, compilation sur Sun Solaris 10 X86 »

GNU Make 3.82, compilation sur Sun Solaris 10 X86

Posté le 29/08/2011 sunCertains produits, comme FreeType 2.4, imposent GNU make lors de la compilation.

La compilation de GNU make 3.82 en 64 bits sur Sun Solaris 10 x86 avec Sun Studio 12.1 est relativement simple.

L'installation est réalisée dans un répertoire personnalisé afin de ne pas polluer les répertoires systèmes /usr.

GNU Make 3.82, compilation sur Sun Solaris 10 X86 »

La librairie graphique libjpeg 8c (8.3.0), compilation sur Sun Solaris 10 X86 64 bits

Posté le 29/08/2011 sunLa librairie graphique libjpeg est utilisée par de nombreux produits comme gnuplot ou encore PHP et JPgraph pour générer des images au format *.jpg, *.jpeg (Joint Photographic Experts Group).

En route pour gnuplot 4.4, la librairie libjpeg 8c est dans cet article compilée avec Sun Studio 12.1 sur une plateforme Solaris 10 X86 64 bits. La librairie libjpeg 8c n'est pas installée dans son répertoire par défaut /usr/local.

Les utilitaires de traitement des images jpg (cjpeg, djpeg et jpegtran) générés à la compilation sont abordés.

La librairie graphique libjpeg 8c (8.3.0), compilation sur Sun Solaris 10 X86 64 bits »

La librairie graphique libpng 1.5.4, compilation sur Sun Solaris 10 X86 64 bits

Posté le 28/08/2011 sunLa librairie graphique libpng est utilisée par de nombreux produits comme gnuplot ou encore PHP et JPgraph pour générer des images au format *.png (Portable Network Graphics).

En route pour gnuplot 4.4, la librairie libpng 1.5.4 est dans cet article compilée avec la librairie de compression zlib version 1.2.5 64 bits, version recommandée et optimale pour les performances et la sécurité.

Afin de ne pas polluer les répertoires systèmes, la librairie libpng 1.5.4 n'est installée dans son répertoire par défaut /usr/local.

La librairie graphique libpng 1.5.4, compilation sur Sun Solaris 10 X86 64 bits »

zlib 1.2.5, compilation sur Sun Solaris 10 X86 en 64 bits

Posté le 28/08/2011 sunLa librairie zlib est une librairie de compression multi plateforme bien plus efficace en compression et en mémoire que la méthode LZW, méthode utilisée par exemple par le binaire compress sous Unix.

Pour des raisons de performances et de sécurité, la version zlib 1.2.5 est fortement recommandée pour la construction de la librairie libpng, librairie graphique pour le format PNG.

Cet article présente la compilation de la version 1.2.5 de la librairie zlib en 64 bits avec SunStudio 12.1 sur une plateforme Solaris 10 x86, compilation qui présente des particularités : option pour le mode 64 bits et délocalisation de l'installation en dehors des répertoires systèmes /usr."

zlib 1.2.5, compilation sur Sun Solaris 10 X86 en 64 bits »

Compilation et installation d'OpenLDAP 2.4.26 client et serveur sur Sun Solaris 10 x86

Posté le 23/08/2011 openldapCet article présente la compilation d'OpenLDAP client et serveur en 64 bits sur une plateforme Sun Solaris 10 X86 avec Sun Studio 12.1.

La compilation d'OpenLDAP 2.4.26 est réalisée avec les composants ci-dessous :

  • OpenSSL 0.9.8r pour la couche SSL/TLS
  • Oracle Berkeley DB 5.2.28 (11.2.5.2.28) pour le stockage backend
  • unixODBC 2.3.0

L'installation d'openLDAP est réalisée dans un répertoire personnalisé afin de ne pas polluer les répertoires systèmes /usr.

L'architecture d'OpenLDAP 2.4 est ensuite présentée brièvement avec un exemple d'utilisation du binaire ldapsearch pour rechercher un compte dans un annuaire LDAP Microsoft Active Directory (AD). La construction d'un serveur OpenLDAP n'est pas abordée.

Compilation et installation d'OpenLDAP 2.4.26 client et serveur sur Sun Solaris 10 x86 »

Compilation et installation d'Oracle Berkeley DB 5.2 sur Sun Solaris 10 x86

Posté le 23/08/2011 oraberkeleydbLa base de données Berkeley DB est embarquée dans de multiples produits Open Source comme OpenLDAP (Annuaire LDAP) et Apache Tigris Subversion (gestion des sources).

Oracle Berkeley DB a beaucoup évolué depuis la version 4.5, version avant l'acquisition par Oracle de SleepyCat. Des fonctionnalités très riches ont été introduites jusqu'à la version 5.2, parmi les nouvelles fonctionnalités (et il y en a beaucoup d'autres) :

  • Réplication.
  • APIs SQL. Compatibiité avec sqlite 3.
  • Possibilité de générer du code C à partir d'un code DDL SQL (create table...) avec db_sql_codegen.
  • Compatibilité Androïd.
  • Pilote ADO.NET ...

Cet article présente la compilation de BerkeleyDB 5.2 avec SunStudio 12.1 sous Sun Solaris 10 x86 en 64 bits, compilation réalisée dans le cadre de la mise en place d'une architecture OpenLDAP et Apache Tigris Subversion, 2 produits qui reposent sur BerkeleyDB.

La création d'un serveur Berkeley DB 5.2 n'est pas abordée ici.

Compilation et installation d'Oracle Berkeley DB 5.2 sur Sun Solaris 10 x86 »

Oracle 11g R2, utilisation du pilote ODBC avec unixODBC 2.3.0 sous Sun Solaris 10 X86

Posté le 22/08/2011 oracleLa couche unixODBC propose le binaire iusql afin d'attaquer des bases de données avec la couche ODBC via un DSN (Data Source Name). Cet utilitaire s'avère très pratique en cas de diagnostic.

Cet article présente le référencement du pilote ODBC 64 bits Oracle 11g natif dans la couche unixODBC 2.3.0 ainsi qu'un test de connexion à une instance Oracle via ODBC avec iusql.

Oracle 11g R2, utilisation du pilote ODBC avec unixODBC 2.3.0 sous Sun Solaris 10 X86 »

Oracle 11g R2, compilation du pilote ODBC avec unixODBC 2.3.0 sous Sun Solaris 10 X86

Posté le 22/08/2011 oracleLors de la construction de la couche unixODBC 2.3.0 sous Solaris 10 x86 et d'un test de connexion ODBC vers Oracle 11g R2, mauvaise surprise : le pilote natif Oracle libsqora.so.11.1 pour ODBC dans $ORACLE_HOME/lib n'est pas présent.

L'option ODBC a bien été sélectionnée lors de la configuration de l'installation mais la librairie libsqora.so.11.1 n'a pas été construite car la couche unixODBC était manquante lors de l'installation. Pas de panique, il est encore possible de construire cette couche ODBC avec le compte unix oracle sans devoir exécuter à nouveau l'installeur Oracle Universal Installer ou réinstaller la distribution Oracle. Les étapes sont décrites dans cette note.

Oracle 11g R2, compilation du pilote ODBC avec unixODBC 2.3.0 sous Sun Solaris 10 X86 »

unixODBC 2.3.0, compilation et utilisation sous Sun Solaris 10 X86

Posté le 22/08/2011 sununixODBC est une couche particulièrement intéressante pour accéder par exemple à des bases Microsoft SQL Server avec le pilote ODBC FreeTDS sur des plateformes Unix. Bien d'autres applications de la couche unixODBC sont possibles : interfaçage de moteurs de bases de données (Oracle, Sybase etc...) avec des langages comme PHP ou encore Python via unixODBC etc...

Cet article présente la compilation d'unixODBC 2.3.0 en 64 bits avec SunStudio 12.1 sur une plateforme Solaris 10 x86 64 bits.

L'architecture et l'utilisation d'unixODBC sur une plateforme Solaris sont présentées en seconde partie, parmi les points abordés :


  • Environnement système unixODBC.
  • Pilotes, DSN - Data Source Name - systèmes et utilisateurs : fichiers odbcinst.ini et odbc.ini, variables $ODBCSYSINI et $ODBCINI.
  • Référencement des pilotes ODBC et création des sources de données.
  • Utilisation du binaire iusql pour tester les connexions ODBC.
  • Debug des appels ODBC.
  • Prédéfinition des attributs ODBC.


Les exemples sont réalisés avec le pilote ODBC Oracle 11g R2 libsqora.so.11.1.

unixODBC 2.3.0, compilation et utilisation sous Sun Solaris 10 X86 »

Tcl/Tk 8.5.10, compilation et utilisation sur Sun Solaris 10 x86

Posté le 20/08/2011 tcltkTcl/tk est souvent utilisé par les moteurs de bases de données, qu'il s'agisse de clients développés en Tcl/Tk ou du langage Tcl embarqué et utilisé dans des routines (procédures stockées PostgreSQL par exemple...).

Cet article présente la compilation de Tcl/Tk 8.5.10 en 64 bits avec SunStudio 12.1 sur une plateforme Solaris 10 x86 64 bits.

Une description de l'arborescence Tcl/Tk est également proposée pour une première prise en main rapide de Tcl/Tk : binaires tclsh et wish, librairies, scripts tclConfig.sh et tkConfig.sh, exécutions des démos graphiques Tk.

Tcl/Tk 8.5.10, compilation et utilisation sur Sun Solaris 10 x86 »

OpenSSL 0.9.8r, compilation sur Sun Solaris 10 x86

Posté le 19/08/2011 sunCet article présente la compilation d'OpenSSL 0.9.8r en 64 bits sur une plateforme Solaris 10 X86 avec les outils de développement SunStudio 12.1. Afin de ne pas polluer les répertoires systèmes, OpenSSL n'est pas installé dans son répertoire par défaut /usr/local/ssl.

L'installation de cette couche Open Source pour les protocoles SSL (Secure Socket Layer) et TLS (Transport Layer Socket) est indispensable pour un bon nombre d'outils qui en dépendent (Apache, OpenLDAP, PHP, Python, PostgreSQL...).

Une description très sommaire de l'arborescence OpenSSL est également proposée pour une première mise en main rapide (fichier de configuration openssl.cnf, openssl, CA.pl...) sans aller toutefois jusqu'à la création de certificats, ce n'est pas le propos.

OpenSSL 0.9.8r, compilation sur Sun Solaris 10 x86 »

Addendum. Google Adsense - Ajout dynamique avec Javascript et la méthode createElement

Posté le 18/08/2011 googleComplément important ajouté à l'article qui présente l'insertion dynamique de Google AdSense avec Javascript et la méthode createElement.

Chaque solution n'est pas parfaite et a ses inconvénients : dans la solution proposée, des conséquences non négligeables dans Google Analytics sont à prendre en considération.

Google Adsense - Ajout dynamique avec Javascript et la méthode createElement »

Google Adsense - Ajout dynamique avec Javascript et la méthode createElement

Posté le 16/08/2011 googleCet article présente comment incorporer dynamiquement les annonces Google AdSense avec Javascript grâce à la balise object dans une page HTML déjà existante.

La méthode est assez simple : une page statique ads.html contenant le code javascript des annonces Google Adsense est créée, puis le contenu de cette page est incorporé dynamiquement avec les méthodes Javascript createElement et appendChild dans la page principale.

La solution proposée est compatible avec Chrome, Firefox 4 et 5, Opera 11.5 et Safari 5. Pour Internet Explorer 8, le navigateur qui donne toujours du fil à retordre, cette méthode fonctionne mais avec des défauts ergonomiques.

NB : le site sqlpac.com n'incorpore pas des annonces Google AdSense pour faire fortune mais pour amortir les frais d'hébergement du site et offrir des liens alternatifs pertinents avec le contenu des articles.

Google Adsense - Ajout dynamique avec Javascript et la méthode createElement »

Microsoft SQL Server 2008 et la compression de données, benchmarks

Posté le 07/08/2011 mssqlSQL Server 2008 introduit la compression de données pour les tables, indexes et partitions.

Les diverses stratégies de compression sont présentées et illustrées dans cet article :

  • compression de lignes (ROW).
  • compression de pages par préfixes (prefix compression).
  • compression de pages avec dictionnaire (Dictionary compression).


Les benchmarks réalisés dans cette étude sur l'impact des types de compressions pour des tables classiques et partitionnées lors des opérations de sélections et de mises à jour montrent que cette nouveauté, bien que très séduisante, doit être appliquée à bon escient.

En bonus, quelques requêtes et procédures systèmes utiles propres à la compression.

Microsoft SQL Server 2008 et la compression de données, benchmarks »

© 2010, SQLPAC - v 3.1. © Adaptive Framework for PHP version 3.1.6