Création d'une vue partitionnée dans la base de données d'archivage
Lorsque vous exécutez le package de maintenance des données BAM (BAM_DM_<activity name>
), BAM copie chaque partition de la base de données d’importation principale BAM dans une table distincte de la base de données d’archivage BAM. Si vous détachez la base de données des archives et la rattachez à des fins de requête, il sera difficile de localiser les données pour votre requête.
Vous pouvez créer des vues partitionnées dans la base de données des archives BAM afin de faciliter la localisation des données. L'analyse BAM prend en charge jusqu'à 253 partitions. Pour chaque activité, l'analyse BAM génère un lot DTS de gestion de données BAM, qui copie les données d'activité dans la base de données des archives BAM, puis les supprime de la base de données d'importation principale BAM. Si la base de données des archives rencontre une défaillance après la copie des données mais avant la prochaine sauvegarde, les données sont perdues.
La solution est d'avoir un lot d'archives unique, qui copie d'abord les anciennes données à partir de toutes les activités, puis sauvegarde la base de données des archives BAM pour supprimer finalement les partitions copiées à partir de la base de données d'importation principale BAM.
Prérequis
Pour exécuter cette procédure, vous devez ouvrir une session en tant que membre du groupe Administrateurs de BizTalk Server.
Créer une vue partitionnée dans la base de données d’archivage BAM (SQL Server 2008 SP1 ou SQL Server 2008 R2)
Ouvrez SQL Server Management Studio.
Sélectionnez la base de données d’archivage BAM, puis cliquez sur Nouvelle requête.
Dans le menu Requête , pointez sur Résultats vers , puis cliquez sur Résultats sur Texte.
Copiez le script SQL suivant dans le volet de requête. Remplacez le nom> de l’activité par <le nom de votre activité et remplacez par
<view type>
Instances pour instance vue ou Relations pour l’affichage relation.set nocount on declare @activityName as nvarchar(128) declare @viewType as nvarchar(50) set @activityName = N'<activity name>'-- Substitute your activity name here set @viewType = N'<view type>'-- Substitute the view type here, either "Instances" or "Relationships" declare @tableName nvarchar(128) declare @viewName nvarchar(128) declare @isFirstTable bit declare @scriptLine nvarchar(300) set @viewName = N'bam_' + @activityName + '_' + @viewType + 'View' select N'SELECT Name FROM sysobjects where name = N''' + @viewName + ''' and type = ''V''' + char(13) + char(10) + 'IF @@ROWCOUNT > 0 DROP VIEW ' + @viewName + char(13) + char(10) + 'GO' select 'CREATE VIEW ' + @viewName + ' AS ' + char(13) + char(10) declare instance_cursor cursor local for select name from sysobjects where name like N'bam_' + @activityName + '_' + @viewType + '_%' and type = 'U' SET @isFirstTable = 1 OPEN instance_cursor FETCH NEXT FROM instance_cursor INTO @tableName WHILE @@fetch_status = 0 BEGIN if @isFirstTable = 1 BEGIN SET @scriptLine = N'SELECT * FROM [' + @tableName + ']' SET @isFirstTable = 0 END ELSE SET @scriptLine = N'UNION ALL SELECT * FROM [' + @tableName + ']' SELECT @scriptLine FETCH NEXT FROM instance_cursor INTO @tableName END CLOSE instance_cursor DEALLOCATE instance_cursor select 'GO' set nocount off
exécutez la requête.