Fonction MultiCast (Multidiffusion)Transformation in SSIS

Bonjour a tous

Dans cet article nous allons voir comment utiliser la transformation de multidiffusion dans Un package  SSIS                                                                                                                               

Scénario:

Parfois, nous avons besoin de lire les données d’une seul  source unique, puis le  charger vers plusieurs destinations ,Disons que nous avons  un table A (SQL Server)  comme source du données  et nous devons charger un  fichier plat et un deuxième table SQL  Server  comme destination 

Solution:

Nous pouvons utiliser la transformation de multidiffusion dans SSIS. Transformation de multidiffusion prend une entrée et crée de multiples sorties. Chacun de la sortie est de la réplique entrée

  l’image explique mieux que mes mots:

Prenez ce flux très simple de données On va commencer par crée un nouveau projet SSIS . Une fois que le projet est créé, nous allons voir comment utiliser la tâche de transformation multi casting. Une fois que vous ouvrez le projet il suffit de glisser et déposez le contrôle de transformation de Moulage multi et un fournisseur de source, comme indiqué dans l’image ci-dessous

Sans titre

Modifier la tâche de flux de données en double cliquant sur l’objet ou en sélectionnant le bouton EDIT sur un clic droit sur l’objet. Assurez-vous que le flux de données Page est ouvert, comme indiqué ci-dessous.

Sans titre

Glissez et déposez le MultiCast transformation dans le flux volet Données et offrir une connexion entre OLE DB Source et Multicast transformation, comme indiqué ci-dessous.

Sans titre

Maintenant nous devons configurer la source de données open source fournisseur OLEDB, comme indiqué dans l’écran ci-dessous

Sans titre

Une fois que la source est configuré maintenant glisser et déposer 2 destinations comme indiqué dans l’écran ci-dessous

1 – tâche de fournisseur OLEDB de mettre à jour la table

2 – fournisseur de fichier plat de mettre à jour un fichier

3 – fournisseur Excel de mettre à jour un fichier Excel

Sans titre

Sans titre

Sans titre

Sans titre

Maintenant, nous allons configurer le fournisseur de fichier plat comme indiqué dans l’écran ci-dessous

  • Vérifiez les mappings et cliquez sur OK.

Sans titre

Une fois que tout est configuré votre écran devrait ressembler à l’écran ci-dessous

Maintenant, le paquet est prêt à exécuter. Appuyez sur F5 et vous pouvez voir l’écran ressemble à ci-dessous qui indique que l’exécution est terminée

Sans titre

 

Voici comment vous pouvez configurer et utiliser la transformation de multidiffusion. Vous pouvez donner sortie de multidiffusion à une autre transformation trop avant de passer à la destination.

Creating your first SSRS report

bonjour a tous

Ce tutoriel a pour objectif de passer en revue les différentes étapes nécessaires à la mise en forme d’un rapport dans SSRS 2012

Pour commencer Il suffit de lancer le programme d’installation de SQL à nouveau, et choisissez d’ajouter des fonctionnalités à une installation existante, et choisissez de sélectionner les caractéristiques requises dont vous avez besoin Permet de suivre un processus étape par étape pour créer votre premier rapport de Business Intelligence. Étape 1: Ouvrez Business Intelligence Dévelopment Studio (Démarrer -> Microsoft SQL Server 2012 – Serveur> SQL Business Intelligence Studio Étape 2:. Cliquez sur Fichier -> Nouveau projet -> Assistant Projet Report Server donner aucun nom et l’emplacement.

Sans titre

Sans titre

Une fois que vous cliquez sur OK, vous sera présenté avec l’écran suivant

Clic droit sur ​​le dossier « sources de données » et ajouter une nouvelle source de données

Sans titre

Cliquez sur Suivant. Maintenant, configurez votre chaîne de connexion. Je l’ai choisi le type de «Microsoft SQL serveur >>

Sans titre

Dans cette étape, vous devez entrer la requête pour les données, que vous devez les SSRS rapport qui sera peuplée avec. Vous pouvez également utiliser le générateur de requête

Cliquez sur Suivant

On sélectionne le mode tabulaire (étant donné que c’est une liste simple).

Sans titre

Vous pouvez prévisualiser le rapport dans Business Intelligence Development Studio.

Sans titre

Maintenant à partir de la boîte à outils, faites glisser un contrôle Graphique

Sans titre

Sans titre

Ça y est, cliquez sur l’onglet d’aperçu et félicitations, vous avez fait votre premier rapport du serveur Microsoft SQL en utilisant une méthode assistant

Sans titre

Félicitations! Vous avez fait votre premier rapport de SSRS

cordialement

Présentation SQL Profiler

Bonjour a tous

Ce tutoriel couvre l’utilisation de SQL Server Profiler 2005, 2008 et 2008R2

SQL Server Profiler est un outil puissant qui est disponible avec SQL Server depuis longtemps cependant, il a surtout été utilisés par les DBA

Quand un profileur est exécuté sur un serveur de production, il ajoute une charge supplémentaire sur le CPU. Cependant, la vraie question Quelle est la charge consommer par le profileur sur le  CPU? Il peut être possible que le processeur du serveur de production ne soit pas utilisé plus de 50% du tout, et l’exécution du profileur sur cette base de données ne ne dégrade pas les performances

Démarrage du Profiler

SQL Server Profileur  est un composant d’outils du client et peut être installé indépendamment du moteur de base de données SQL Server. Il est obligatoire pour l’utilisateur d’avoir  le droit « admin système « droits pour  démarrer le profileur. Il peut être lancé en utilisant les méthodes suivantes.

Tout d’abord, ouvrez SQL Server Profiler:

Tous les programmes> Microsoft SQL Server> Performance Tools> Profiler SQL Server

Sans titre

Sélectionnez nouvelle trace (1ere bouton à gauche)

Connectez-vous à la fenêtre du serveur apparaît et vous connecter au serveur que vous voulez tracer

Sans titre

Sans titre                                                                               Pour ajouter ou supprimer des événements, des colonnes de données ou des filtres, cliquez sur l’onglet Sélection des événements.

Sans titre

Filtres

Le seul filtre je crée est basée sur Durée , parce que je veux concentrer mes efforts sur les instructions SQL qui causent le plus de problèmes. Sélection de la durée idéale pour le filtre est pas toujours facile. Généralement, je pourrais d’abord capturer uniquement les événements qui sont plus de 300 millisecondes dans la durée. Si je trouve qu’il ya tout simplement trop d’événements de travailler facilement avec, je pourrais «relever la barre» pour 5000 ou 10000 millisecondes. Vous aurez besoin d’expérimenter avec différentes durées de voir ce qui fonctionne le mieux pour vous

  • Sélection des colonnes souhaitées :L’écran « sélection de l’événement ‘contient une case à cocher qui peut être configuré que par l’exigence de données à collecter. Le même écran contient un bouton «Filtres colonne ‘, qui, lorsqu’il est cliqué amène à un autre écran qui peut être utilisé pour d’autres données filtre de trace.

Sans titre

  1. Pour démarrer la trace, cliquez sur Exécuter                       Sans titre
  2. Sans titre                                                                               Ces données peuvent être sauvegardées dans le fichier de base de données  ou enregistré au format XML. le fichier de trace peut être réimporté dans profileur, et profileur peut ré-exécuter l’ensemble du scénario. Une fois le fichier de trace est sauvegardée dans la table de base de données, il peut être interrogé à l’aide de T-SQL.
  3. Sans titre

La trace peut être suspendue ou arrêtée au besoin en utilisant le menu de lecture sur le dessus.

Je espère que cela 😉

Fonction Aggregate (count) de contrôle Transformations dans SSIS

bonjour a tous

Dans cet article nous allons voir comment utiliser la Fonction  Agrégat (COUNT) flux de données de contrôle de transformation dans un package  SSIS

Débutons l’exemple sur la façon d’utiliser ce contrôle en temps réel                                              Étapes: nous allons voir comment utiliser un contrôle total pour obtenir le nombre de lignes d’une colonne particulière ou une liste de colonnes.                                                                     Dans notre exemple on va compter le nbre du jour de congé par personne  

pour cela J’ai ajouté une connexion OLEDB qui récupère les données de la base sur laquelle nous allons faire obtenir le nbre du jours de congé par personne 

Sans titre                                                                                                                                                                                        Sans titre

Ici, nous sélectionnons les colonnes sur lesquelles nous avons besoin d’un comte, comme indiqué dans l’écran. Et après avoir sélectionné le nombre de colonnes pour obtenir le compte maintenant cliquer sur le bouton OK pour obtenir configuré.

double-cliquez sur la fonction d’agrégation va ouvrir une fenêtre pop-up, comme indiqué dans l’écran ci-dessous

Sans titre

Maintenant on va configurer le fichier plat Destinations comme indiqué dans l’écran ci-dessous

Sans titre*

Sans titre

Sans titre

Une fois que tout est configuré Votre écran sera comme indiqué dans l’écran ci-dessous

Sans titre

Et enfin les résultats (nombre des jour du congé par personnes) sont chargés à destination de fichier plat qui ressemble à ci-dessous

Sans titre

Donc, dans cet article, nous avons vu sur la façon d’obtenir la somme du nbre à l’aide d’une de la fonction agregate

cordialement

Échec de l’instruction CREATE DATABASE. Le fichier primaire doit être doté d’une capacité minimale de 5 Mo pour recevoir une copie de la base de données model

Bonjour a tous

Aujourd’hui j’ai essayer de crée un base de donnée du test  une erreur se produit en appuyant sur la bouton Ajouté

ci jointe une imprime écran du message d’erreur qui s’apparaît :

Msg 1803, Level 16, State 1, Line 1
The CREATE DATABASE statement failed. The primary file must be at least 2 MB to accommodate a copy of the model database.

Sans titre

Si vous essayer de Créer une base de données qui est plus petit de la taille  base de données  Modèle qui  est de 2 Mo.Il lancera erreur suivante: SQL SERVER – CORRECTIF: erreur Msg 5174 Chaque taille du fichier doit être supérieure ou égale à 2MO
SQL Server crée une base de données en effectuant une copie de la base de données model. Ensuite, SQL Server renomme la copie et agrandit la nouvelle base de données à la taille demandée. Dans le cas présent, l’utilisateur a essayé de créer une base de données plus petite que la base de données model. L’opération a échoué car la copie de la base de données model ne correspondait pas au fichier de données primaire, parce que le fichier était plus petit que la base de données model
cordialement

Reconstruire et Réorganiser vos index avec sys.dm_db_index_physical_stats

bonjour

Comme la fragmentation peut avoir un impact négatif sur l’efficacité de l’accès aux données l’une des principales tâches d’un DBA est de maintenir les index de bases de données Si votre base de données  est fréquemment mise à jour via un INSERT, UPDATE ou DELETE nous pouvons nous attendre à sa fragmentation dans le temps.

Afin de réduire la fragmentation, vous devez réorganiser ou reconstruire l’index.

Microsoft vous propose ce code qui vous permet de réorganiser  et  reconstruit automatiquement toutes les partitions d’une base de données dont la fragmentation moyenne est supérieure à 10 %.

Ce script fonctionnera sur les versions SQL Server 2008 et supérieur. Le but est de réduire la fragmentation des index par une opération du réorganisation ou du reconstruction

SET NOCOUNT ON;
DECLARE @objectid int;
DECLARE @indexid int;
DECLARE @partitioncount bigint;
DECLARE @schemaname nvarchar(130); 
DECLARE @objectname nvarchar(130); 
DECLARE @indexname nvarchar(130); 
DECLARE @partitionnum bigint;
DECLARE @partitions bigint;
DECLARE @frag float;
DECLARE @command nvarchar(4000); 
-- Conditionally select tables and indexes from the sys.dm_db_index_physical_stats function 
-- and convert object and index IDs to names.
SELECT
    object_id AS objectid,
    index_id AS indexid,
    partition_number AS partitionnum,
    avg_fragmentation_in_percent AS frag
INTO #work_to_do
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, 'LIMITED')
WHERE avg_fragmentation_in_percent > 10.0 AND index_id > 0;

-- Declare the cursor for the list of partitions to be processed.
DECLARE partitions CURSOR FOR SELECT * FROM #work_to_do;

-- Open the cursor.
OPEN partitions;

-- Loop through the partitions.
WHILE (1=1)
    BEGIN;
        FETCH NEXT
           FROM partitions
           INTO @objectid, @indexid, @partitionnum, @frag;
        IF @@FETCH_STATUS < 0 BREAK;
        SELECT @objectname = QUOTENAME(o.name), @schemaname = QUOTENAME(s.name)
        FROM sys.objects AS o
        JOIN sys.schemas as s ON s.schema_id = o.schema_id
        WHERE o.object_id = @objectid;
        SELECT @indexname = QUOTENAME(name)
        FROM sys.indexes
        WHERE  object_id = @objectid AND index_id = @indexid;
        SELECT @partitioncount = count (*)
        FROM sys.partitions
        WHERE object_id = @objectid AND index_id = @indexid;

-- 30 is an arbitrary decision point at which to switch between reorganizing and rebuilding.
        IF @frag < 30.0
            SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REORGANIZE';
        IF @frag >= 30.0
            SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REBUILD';
        IF @partitioncount > 1
            SET @command = @command + N' PARTITION=' + CAST(@partitionnum AS nvarchar(10));
        EXEC (@command);
        PRINT N'Executed: ' + @command;
    END;

-- Close and deallocate the cursor.
CLOSE partitions;
DEALLOCATE partitions;

-- Drop the temporary table.
DROP TABLE #work_to_do;
GO

Derived Column Transformation : colonne dérivé

Bonjour a tous

Un des outils les très puissants de SSIS  c’est l’utilisation  du Fonction Derived Column

Je vais aujourd’hui vous montrer qu’il est assez comment développer avec Intégration Services une solution permettant de faire convertir une  colonne source (Dans notre cas on va concaténer une chaîne du caractère) en utilisant la fonction colonne dérivé

Vous pouvez utiliser cette transformation pour réaliser les tâches suivantes :

  1. concaténer des données à partir de différentes colonnes en une colonne dérivée. Par exemple, vous pouvez combiner les valeurs des colonnes FirstName etLastName en une colonne dérivée unique nommée FullName à l’aide de l’expression FirstName +  »  » + LastName.
  2. extraire des caractères de données de chaîne à l’aide de fonctions telles que SUBSTRING, puis stocker le résultat dans une colonne dérivée. Par exemple, vous pouvez extraire de la colonne FirstName l’initiale d’une personne à l’aide de l’expression SUBSTRING(FirstName,1,1).
  3. appliquer des fonctions mathématiques à des données numériques et stocker le résultat dans une colonne dérivée. Par exemple, vous pouvez modifier la longueur et la précision d’une colonne numérique, SalesTax, en un nombre à deux décimales à l’aide de l’expression ROUND(SalesTax, 2).
  4. créer des expressions qui comparent les colonnes d’entrée et les variables. Par exemple, vous pouvez comparer la variable Version aux données de la colonne ProductVersion et, suivant le résultat de la comparaison, utiliser la valeur de Version ou de ProductVersion, à l’aide de l’expressionProductVersion == @Version? ProductVersion : @Version.
  5. extraire des parties d’une valeur de date et d’heure. Par exemple, vous pouvez utiliser les fonctions GETDATE et DATEPART pour extraire l’année actuelle à l’aide de l’expression DATEPART(« year »,GETDATE()).
  6. convertir des chaînes de date dans un format spécifique en utilisant une expression.           je commence  a vous présenter l’exemple suivante : la source du donnée est un table sql qui contiens un colonne nommé MATRI ce dernier contiens les listes des matricules des personnes présent dans la société chaque colonne doit être concaténer avec la chaîne « G »        exempe 542886—————-Derived Column ————————->G542886       Dans un nouveau projet Intégration Services, on crée un nouveau flux de donnée              On paramètre cette connexion pour connecter sur un table SQL Sans titre25                                                  colonne  colone dérivé36Sans titre22                                                                                                                                             On peut à ce moment tester notre package qui intègre sans problème  la modification   en envoyant la résultat vers la table source après avoir faire une comparaison avec l’opération lookup                                                                                                                                                      Sans titre30Une derrière exécution du package permet de vérifier que tout fonctionne bien :et que la fonction colonne dérivé est bien Fonctionner lookup222

    bonne travaille a tous                                  

Le compteur Buffer Cache Hit Ratio Ca montre un signe de pression mémoire

Bonjour

Si vous été  intéresser de  suivre les performances du votre serveur SGBD , c’est bien le Buffer Cache Hit Ratio

ce compteur représente un rapport du nombre de pages lues en RAM par rapport au nombre de pages lues à partir des disques.

Ce dernier vous permet de  détecter l’existante d’une pression mémoire sur une instance SQL Server

Voici deux petites requêtes pour trouver sa valeur :

SELECT CAST( 
 ( 
 SELECT CAST (cntr_value AS BIGINT) 
 FROM sys.dm_os_performance_counters 
 WHERE counter_name = 'Buffer cache hit ratio' 
 )* 100.00 
 / 
 ( 
 SELECT CAST (cntr_value AS BIGINT) 
 FROM sys.dm_os_performance_counters 
 WHERE counter_name = 'Buffer cache hit ratio base' 
 ) AS NUMERIC(6,3) 
 )

Remarque plus la valeur de ce pourcentage est élevée et proche du 100% plus qu ‘ont avec une importance performance

Attention: Des valeurs inférieures à 85~90% (selon les contextes…) sont généralement considérées comme « mauvaises »

pour détecter une réelle pression mémoire et pour avoir plus  de détaille vous  devrais placer plus de compteurs  plus du Buffer cache hit ratio si tu as  Ce seul compteur ce ci n’est pas suffisant  pour  dire que tu as de la pression et que tu lis plus sur disque.

Des compteurs judicieux à placer en plus du « Buffer cache hit ratio » sont les suivants :

– Buffer Manager : page life expectancy 
– Buffer Manager : page read/s
– Buffer Manager : Lazy Writes /s

bonne surveillance a tous

impossible de supprimer la base de données « nom Database  » car elle est en cours d’utilisation error: 3702

Bonjour a tous

Si vous obtenez toujours l’erreur suivant après que vous essayez de suprimer votre base de donné

SQL SERVER – FIX – Msg 3702, Level 16, State 3 – Cannot Drop Database “……… » Because it is Currently in Use

Drop

essayer d’exécuter sp_who2 pour savoir quel utilisateur utilise votre db

il existe deux approches pour résoudre ce type du problème :

1-Trouver les connexions qui utilisent cette base de données  Essentiellement trouver ces  Voici le script pour générer commande kill .Attention ces processus  doit avoir un SPID >50

SELECT  ‘kill’ + CONVERT(VARCHAR(100), session_id)
FROM sys.dm_exec_sessions
WHERE database_id = DB_ID(‘lookup ssis‘)
AND session_id <> @@spid

Sans titre

sans-titre15

SQL Server dispose d’une fonctionnalité intégrée où il peut tuer tout  toutes les connexions. Il ya une cause dite «with  ROLLLBACK IMMÉDIATE » qui peut être utilisé pour tuer les autres connexions

USE [master]
GO
ALTER DATABASE [lookup ssis] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
USE [master]

 

bonne travaille

Différence entre reconstruction d’index et Réorganiser Index

bonjour a tous

Index Rebuild: Ce processus supprime l’index existant et recrée l’indice

USE AdventureWorks;
GO
ALTER INDEX ALL ON Production.Product REBUILD
GO

En cas d’arrête d’instruction ALTER INDEXREBUILD pendant leur exécution, tout le travail du moteur de base de données effectué jusqu’au moment de l’arrêt de l’exécution de l’instruction est perdu

Index Reorganize:Cette opération est toujours en ligne et si vous annulez cette opération alors il est en mesure d’arrêter là où il est (il n’a pas une opération géante de rollback)

USE AdventureWorks;
GO
ALTER INDEX ALL ON Production.Product REORGANIZE
GO

recommandation: L’index devrait être reconstruire lorsque la fragmentation de l’index est grand de 40%. index devrait être réorganisée lorsque la fragmentation de l’index  se situe entre 10% à 40%

sys.dm_db_index_physical_stats vous permet de détecter la fragmentation dans un index spécifique, dans tous les index d’une table ou d’une vue indexée

le processus de la reconstruction utilise plus de CPU et il verrouille les ressources de base de donnée

le rebuild en ligne est disponible que avec la Version Enterprise et le développement qui peut être activé avec Option ONLINE

le rebuild recalcule les statistiques en même temps, il n’en est pas de même pour la défragmentation. Pensez donc à recalculer les statistiques si vous faite une défragmentation

index

Bonne indexation