Při spuštění Microsoft Dynamics CRM 4.0 tabulky AsyncOperationBase roste být velmi velké. Pokud tabulka obsahuje milióny záznamů, je pomalý.
Navíc jsou na serveru Microsoft Dynamics CRM v protokolu událostí aplikace zaznamenány chyby podobné následujícím:
Typ události: Chyba Zdroj události: MSCRMDeletionService Kategorie události: žádný ID události: 16387 Datum: 2009, 01/26 Čas: 11:41:54 AM Uživatel: N/A Počítač: CRMSERVER Popis: Chyba: odstranění službě se nepodařilo vyčistit tabulku = CleanupInactiveWorkflowAssembliesProcedure Další informace naleznete v nápovědě a odborné na adrese http://go.microsoft.com/fwlink/events.asp.
Tento problém vyřešíte spuštěním následujícího skriptu proti <OrgName> Databáze _MSCRM kde <orgname>je zástupný symbol pro skutečný název organizace.
Upozornění:Před čištění dat prosím Poznámka dokončena systémové úlohy v některých případech mají hodnotu obchodní a potřebujete uložené pro dlouhé období, takže Diskuse prosím s pracovníky pro správu vaší orgnization nejprve.
Uskutečnit systémové úlohy:
Kolekce dat SQM. -Program docházet měřítka kvality softwaru které shromažďuje data pro zákazníka.
Úloha aktualizace smlouvy státy SQL. Tato úloha spouští jednou za den na půlnoci. Tato úloha nastaví stav neplatné platností smluv.
Naplní organizace úplný text katalogu Index - index úplný text v db hledání články kb v CRM.
Pokud zrušena opakované úlohy jejich budou odebrány.
Poznámky
Skript SQL v Tento článek je pouze jednorázový úsilí. Můžete přidat toto jako SQL úlohu spustit na nočního, týdenní nebo měsíční základ periodického základ. Jako vaše CRM spustí , nutné buď použít tento článek na základě týdenní v závislosti na váš podnik potřebuje nebo použít řešení podle writting vlastní úlohy HROMADNÉ DELETE (naleznete naše CRM SDK dokumentaci na vlastnost BulkDeleteRequest.QuerySet, BulkDeleteRequest třídy a odstranění objednávky).
Ujistěte se, že odstraněné záznamy AsyncOperation pro pracovní postupy a odpovídající záznamy z objektu WorkflowLogBase.
Ujistěte se, že budou odstraněny všechny odpovídající záznamy bulkdeletefailure.
Přesvědčte se, zda pouze následující typy operace Async jsou odstraněna, pokud je kód stavu typy 3 a kód stavu typy je 30 nebo 32:
Rozšiřující úkol pracovního postupu (1)
Shromažďování dat SQM (9)
PersistMatchCode (12)
FullTextCatalogIndex (25)
UpdateContractStates (27)
Pracovní postup (10)
IF EXISTS (SELECT name from sys.indexes
WHERE name = N'CRM_AsyncOperation_CleanupCompleted')
DROP Index AsyncOperationBase.CRM_AsyncOperation_CleanupCompleted
GO
CREATE NONCLUSTERED INDEX CRM_AsyncOperation_CleanupCompleted
ON [dbo].[AsyncOperationBase] ([StatusCode],[StateCode],[OperationType])
GO
declare @DeleteRowCount int
Select @DeleteRowCount = 2000
declare @DeletedAsyncRowsTable table (AsyncOperationId uniqueidentifier not null primary key)
declare @continue int, @rowCount int
select @continue = 1
while (@continue = 1)
begin
begin tran
insert into @DeletedAsyncRowsTable(AsyncOperationId)
Select top (@DeleteRowCount) AsyncOperationId
from AsyncOperationBase
where OperationType in (1, 9, 12, 25, 27, 10) AND StateCode = 3 AND StatusCode in (30, 32)
Select @rowCount = 0
Select @rowCount = count(*) from @DeletedAsyncRowsTable
select @continue = case when @rowCount <= 0 then 0 else 1 end
if (@continue = 1)
begin
delete WorkflowLogBase from WorkflowLogBase W, @DeletedAsyncRowsTable d
where W.AsyncOperationId = d.AsyncOperationId
delete BulkDeleteFailureBase From BulkDeleteFailureBase B, @DeletedAsyncRowsTable d
where B.AsyncOperationId = d.AsyncOperationId
delete AsyncOperationBase From AsyncOperationBase A, @DeletedAsyncRowsTable d
where A.AsyncOperationId = d.AsyncOperationId
delete @DeletedAsyncRowsTable
end
commit
end
--Drop the Index on AsyncOperationBase
DROP INDEX AsyncOperationBase.CRM_AsyncOperation_CleanupCompleted
Zlepšení výkonu odstranění skriptu
Zlepšit celkový výkon Microsoft CRM naplánovat odstranění CRM služby spustit špičku pro aplikaci Microsoft CRM. Ve výchozím nastavení je služba spuštěna v okamžiku nainstalována aplikace Microsoft CRM. Můžete však spustit služby 10: 00 HODIN namísto na výchozí čas spuštění. To provedete pomocí editoru úlohy CRM ScaleGroup. Další informace naleznete na následujícím webu MSDN:
Poznámka: Tato akce neovlivní výkon skriptu přímo.
Zlepšení výkonu odstranění skripty v tomto článku a zlepšit Microsoft CRM DeletionService kód spuštěný podobné odstraní přidat následující indexy threeOrganizationName_MSCRM databáze před spuštěním skriptu odstranění v tomto článku:
CREATE NONCLUSTERED INDEX CRM_WorkflowLog_AsyncOperationID ON [dbo].[WorkflowLogBase] ([AsyncOperationID])
GO
CREATE NONCLUSTERED INDEX CRM_DuplicateRecord_AsyncOperationID ON [dbo].[DuplicateRecordBase] ([AsyncOperationID])
GO
CREATE NONCLUSTERED INDEX CRM_BulkDeleteOperation_AsyncOperationID ON [dbo].[BulkDeleteOperationBase]
(AsyncOperationID)
GO
Poznámka Pokud přidáte tyto indexy skriptu odstranění může trvat hodiny spustit.
Zastavit CRM asynchronní zpracování služby při spuštění tohoto skriptu.
OPTIONAL: následující indexy znovu vytvořit a aktualizovat statistiky:
-- Rebuild Indexes & Update Statistics on AsyncOperationBase Table
ALTER INDEX ALL ON AsyncOperationBase REBUILD WITH (FILLFACTOR = 80, ONLINE = OFF,SORT_IN_TEMPDB = ON, STATISTICS_NORECOMPUTE = OFF)
GO
-- Rebuild Indexes & Update Statistics on WorkflowLogBase Table
ALTER INDEX ALL ON WorkflowLogBase REBUILD WITH (FILLFACTOR = 80, ONLINE = OFF,SORT_IN_TEMPDB = ON, STATISTICS_NORECOMPUTE = OFF)
GO
OPTIONAL: Statistika aktualizovat pomocí úplné skenování na všechny tabulky zapojených pomocí dotazu níže příkazy (nejlépe na vypnuto špičky):
UPDATE STATISTICS [dbo].[AsyncOperationBase] WITH FULLSCAN
UPDATE STATISTICS [dbo].[DuplicateRecordBase] WITH FULLSCAN
UPDATE STATISTICS [dbo].[BulkDeleteOperationBase] WITH FULLSCAN
UPDATE STATISTICS [dbo].[WorkflowCompletedScopeBase] WITH FULLSCAN
UPDATE STATISTICS [dbo].[WorkflowLogBase] WITH FULLSCAN
UPDATE STATISTICS [dbo].[WorkflowWaitSubscriptionBase] WITH FULLSCAN
OPTIONAL : změnit model zotavení databáze MSCRM Simple vyhnout nadbytečných generování protokolů serveru SQL. SQL server 2005 přihlášení Management Studio Microsoft SQL Server jako správce, klepněte pravým tlačítkem myši na databázi _MSCRM <org_name>, klepněte na tlačítkoVlastnosti, klepněte na příkaz Možnosti a potom klepněte na Model obnovení. Označit Simple a potom klepněte na tlačítko OK. Po spuštění tohoto skriptu počáteční čas, model zotavení databáze _MSCRM <org_name> Přepnutí zpět do FULL nejlepší datový model obnovitelnost.
Určit číslo záznamy odstraněny skriptem v tomto článku, spusťte následující skript počet proti databázi OrganizationName_MSCRM:
Select Count(AsyncOperationId)
from AsyncOperationBase WITH (NOLOCK)
where OperationType in (1, 9, 12, 25, 27, 10)
AND StateCode = 3 AND StatusCode IN (30,32)
Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft
Další informace o Microsoft Business Solutions CRM software opravy hotfix a aktualizace balíček terminologii klepnutím na následující číslo článku databáze Microsoft Knowledge Base:
Standardy používání názvů u balíčků oprav hotfix a aktualizací softwaru aplikace Microsoft Business Solutions CRM (Tento článek může obsahovat odkazy na anglický obsah (dosud nepřeložený).)
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.