In der Sitecore-Workbox (Sitecore.Shell.Applications.Workbox)
verwendet Sitecore in der Methode DisplayStates(IWorkflow workflow, XmlControl placeholder)
folgende Methode zum Abrufen von Elementen in einem bestimmten Workflowzustand.Lösen Sie das Leistungsproblem der Sitecore-Workbox
DataUri[] items = this.GetItems(state, workflow);
In unserer Datenbank master sind 650.000 Artikel zu finden. Es dauert etwa 1 ½ Minuten, um die Workbox zu laden. Ich habe geschaut, was in der Methode "this.GetItems (state, workflow)" mit dotpeek passiert.
Intern Konstrukte es die folgende Abfrage, die 1 ½ Minuten dauerte in der Master-Datenbank ausführen (wählen 36 Artikel von 650,000+ Artikeln),
SELECT *
FROM VersionedFields INNER JOIN Items ON VersionedFields.ItemId = Items.Id
WHERE ItemId IN (SELECT ItemId FROM SharedFields WHERE FieldId=Workflowengine field AND Value= workflowengine)
AND FieldId=workflow state AND Value= workflowstate value
ORDER BY Name, Language, Version
Gibt es eine Möglichkeit, die Leistung in Workbox zu verbessern?
Sie können einen Index auf die SQL-Tabelle auf dem Feld ItemID aus (wenn es nicht bereits vorhanden ist). Das könnte die Dinge beschleunigen. –
+1 gut recherchierte Frage. –