Dochází místo v lokální databázi
Popis
V logu klienta se objevuje podobná chyba:
Could not allocate a new page for database 'eWay' because of insufficient disk space in filegroup 'PRIMARY'. Create the necessary space by dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.
Verze
Všechny verze eWay-CRM
Obtížnost řešení
Vysoká
Postup řešení
Lokální databáze Microsoft SQL Server LocalDB nebo Express mají limit na 10 GB.
Pomocí následujícího dotazu zjistíme, která z tabulek / indexů zabírá nejvíce místa, na něž je následně vhodné se zaměřit:
SELECT OBJECT_SCHEMA_NAME(i.OBJECT_ID) AS SchemaName, OBJECT_NAME(i.OBJECT_ID) AS TableName, i.name AS IndexName, i.index_id AS IndexID, 8 * SUM(a.used_pages) AS 'IndexSize(KB)' FROM sys.indexes AS i JOIN sys.partitions AS p ON p.OBJECT_ID = i.OBJECT_ID AND p.index_id = i.index_id JOIN sys.allocation_units AS a ON a.container_id = p.partition_id GROUP BY i.OBJECT_ID, i.index_id, i.name ORDER BY SUM(a.used_pages) DESC
Článek dále obsahuje následující řešení:
- Omezení počtu marketingových reakcí
- Omezení velikosti poznámky v e-mailech
- Co dělat když lokální databáze obsahuje změny a už nemůže synchronizovat?
Omezení počtu marketingových reakcí
Doporučujeme nevytvářet a odstranit reakce typu E-mail odeslán a E-mail doručen. Informaci o tom, jaká kampaň na daný kontakt šla, je možné zjistit i na záložce Marketing.
Následujícím dotazem se dá zjistit, kolik takových deníků v eWay-CRM je a jestli tedy řešení pomůže. Dotaz je potřeba spustit na serverové databázi eWay-CRM.
SELECT COUNT(ItemGUID) FROM EWD_Journal WHERE EmailCampaignResponseType = 1 OR EmailCampaignResponseType = 2
Tímto skriptem můžeme staré reakce smazat ze serverové databáze eWay-CRM:
DECLARE @JournalGUID AS UNIQUEIDENTIFIER DECLARE Journals CURSOR LOCAL FORWARD_ONLY FAST_FORWARD READ_ONLY FOR SELECT ItemGUID FROM EWD_Journal WHERE EmailCampaignResponseType = 1 OR EmailCampaignResponseType = 2 OPEN Journals FETCH NEXT FROM Journals INTO @JournalGUID WHILE @@FETCH_STATUS = 0 BEGIN EXEC eWaySP_DeleteItem @ItemGUID = @JournalGUID, @FolderName = 'Journal' FETCH NEXT FROM Journals INTO @JournalGUID END CLOSE Journals DEALLOCATE Journals
Omezení velikosti poznámky v e-mailech
Pokud jako jeden z největších indexů vychází clustered index IX_Emails bude to pravděpodobně souviset s velikostí pole Poznámka (Note).
eWay-CRM při ukládání každého e-mailu ukládání do pole Poznámka obsah e-mailu v podobě neformátovaného textu. To ale může být pro každý e-mail několik tisíc znaků.
Od verze 8.0 můžeme tyto poznámky zkrátit pomocí SQL procedury eWaySP_TrimEmailsNote. Procedura má tyto parametry:- @MonthsBack - určuje u jak moc starých e-mailů má být poznámka zkrácena (výchozí je 12 měsíců)
- @MaxLength - určuje na jakou velikost mají být e-maily ořezány (výchozí hodnota je 300 znaků). To je dostatečné, pokud se například v HUBu potřebujete v e-mailech zorientovat.
Celý obsah e-mailu zůstane pořád dostupný v originální zprávě, kterou bude stále možné otevřít.
Pro nastavení automatického promazání je potřeba vytvořit job, který může vypadat např. takto:
<TriggerDefinition When="ScheduledAtTime" Active="true"> <Action Type="StoredProcedure"> <StoredProcedures> <StoredProcedure Name="eWaySP_TrimEmailsNote"/> </StoredProcedures> <Criterias> <ActionCriteria Name="Time" Value="06:00:00"/> <ActionCriteria Name="Repeat" Value="w"/> <ActionCriteria Name="DayOfWeek" Value="Monday" /> </Criterias> </Action> </TriggerDefinition>
Co dělat když lokální databáze obsahuje změny a už nemůže synchronizovat?
Nejprve aplikujeme některé výše zmíněné změny na serveru.
Na dané stanici zavřeme Outlook.
Nejprve zkusíme defragmentovat indexy:
EXEC eWaySP_DefragmentIndexes
Spustíme Outlook. Vyčkáme na dokončení synchronizace. Pokud synchronizace stále nedobíhá, podle aplikovaného řešení výše
identifikujeme tabulku v lokální databázi a zjistíme zda neobsahuje nějaké nenahrané změny. Pro deníky by dotaz vypadal takto:
SELECT * FROM Journal WHERE ItemState <> 1
Pokud dotaz nic nevrací, můžeme tabulku promazat:
TRUNCATE TABLE Journal
Pomocí registrů Windows vyvoláme synchronizaci podle složek, aby se dotáhly chybějící položky. Stačí stáhnou a spustit tento soubor: https://download.eway-crm.com/regfiles/request_synchronize_all_counter.zip
Poté spustíme Outlook a počkáme na dokončení synchronizace.