Mémo : Vider/Réduire la base de données SSISDB

Bonjour,

Voici un mémo pour vider une base de données SSISDB générée avec SQL Server 2012. En phase de développement ou de recette, le volume pris par cette base de données peut s’accroitre rapidement si le mode « verbose » est conservé dans les jobs.

http://thinknook.com/truncate-ssis-catalog-database-operation-log-tables-2012-11-03/

Mémo : Déplacement de packages SSIS utilisés par le SQL Agent

Bonjour,

Une note très rapide en mode mémo sur les jobs et les étapes de job dans le SQL Agent.

Les tables system suivantes :
– msdb.dbo.sysjobs : contient la liste de vos jobs
– msdb.dbo.sysjobsteps : contient la liste des étapes de vos jobs

Vous pouvez donc faire des modifications (soyez prudent quand même) directement dans ces tables (notamment dans la colonne « command »). Exemple de cas :
– Déplacement des packages appelés par le SQL Agent,
– Renommage de package.

Cas classique : Si vous déplacez vos packages avant de mettre à jour le SQL Agent, vous ne pouvez plus éditer l’étape pour répercuter vos changements. L’utilisation de ces tables permet donc d’éviter la recréation et le paramétrage des étapes.

A bientôt,

Guillaume

Clear Channel

Bonjour,

Clear Channel est une entreprise américaine créée en 1972. En France, l’activité principale de la société est la commercialisation d’espaces publicitaires dans différents univers (grandes surfaces, abris bus, …). Clear Channel m’a été présenté comme le concurrent de JC Decaux.

Pour plus d’informations, vous pouvez consulter www.clearchannel.fr

Clear Channel fait appel à ASI-Informatique depuis plusieurs années pour ses problématiques BI. Ma mission au sein de la DOSI de juillet 2010 à octobre 2011 chez Clear Channel a consisté à :

  • concevoir et développer un datamart pour la direction des opérations en coopération avec le contrôle de gestion.
  • assurer les évolutions et les corrections sur le datamart du yield
  • développer un datamart pour analyser la chaine de valeur pour la direction des opérations
  • réaliser l’analyse d’impact, les spécifications de la migration BI dans le cadre d’un projet de mise en place d’un outil de gestion de patrimoine

A bientôt,

Guillaume

2010 – Certification Talend TOS

Bonjour,

Un rapide article pour vous informer que j’ai obtenu une certification Talend le 26 février 2010.



Le programme de certification Talend précise :

Cette certification est remise aux individus qui réussissent un test online de compréhension abordant tous les usages de Talend Open Studio.

Les clients faisant confiance à un intégrateur pour implémenter la solution ou cherchant à recruter quelqu’un peuvent être assurés que les consultants sont experts dans la technologie.

La certification Talend leur fournit ce niveau de qualification.

En anglais :

Certification is awarded to individuals who successfully complete a comprehensive online test covering all aspects of the use of Talend Open Studio.

Clients trusting a systems integrator to implement a solution or seeking to hire an individual want to be reassured that the consultants are indeed experts in the technology.

Talend certification gives them this level of assurance.

Et voici le lien 😉

A bientôt,

Guillaume

[Procédure Stockée] Cursor / Curseur

Bonjour,

Lors du développement d’une procédure stockée, il est d’usage d’éviter l’utilisation des curseurs. Cependant ce n’est pas toujours possible. Il convient alors d’apprivoiser certaines subtilités.

Pour rappel, les curseurs permettent un parcourt ligne à ligne renvoyée par une requête de sélection (par exemple). Vous trouverez plus d’information sur leur usage sur Les procédures et les curseurs avec MS-SQL Server.

Après avoir chargé le curseur avec :

DECLARE curseur_1 CURSOR FOR (RQT)

puis avoir ouvert le curseur avec :

OPEN curseur_1

puis avoir récupéré le premier champ de la premiere ligne du curseur avec :

FETCH curseur_1 into @champ1

Un curseur se parcourt avec une boucle :

WHILE @@FETCH_STATUS = 0

BEGIN

Instructions

END

@@Fetch_Status retourne l’état de la dernière instruction FETCH effectuée sur un curseur actuellement ouvert par la connexion.

J’attire votre attention dans cet article sur l’usage de 2 curseurs imbriqués. En effet, la documentation Microsoft précise :

Supposons, par exemple, qu’un utilisateur exécute une instruction FETCH sur un curseur, puis appelle une procédure stockée qui ouvre et traite les résultats pour un autre curseur. Lorsque le contrôle revient de la procédure stockée, @@FETCH_STATUS prend en compte la dernière instruction FETCH exécutée dans la procédure stockée et non celle qui avait eu lieu avant l’appel de la procédure stockée. (http://msdn.microsoft.com/fr-fr/library/ms187308.aspx)

Il est donc impossible d’imbriquer 2 curseurs. La solution est pour y remédier est d’attaquer la table sys.dm_exec_cursors qui contient l’état des curseurs actifs distinctement.

Il faut donc remplacer le :

while fetch_status =0
par :
while (SELECT fetch_status FROM sys.dm_exec_cursors(@@spid) where name = ‘curseur_1’ ) =0

Dans le cas d’une utilisation importante de procédures stockées potentiellement imbriquées, cette solution garantie les résultats.

Si vous avez la possibilité de ne pas utiliser de curseur, c’est encore mieux 😉

Bonne soirée,

Guillaume