Ich habe gelesen, dass, wenn die Datensätze im Papierkorb zu viele sind, um die aus Abfragen gelöschten Datensätze auszuschließen, die Bedingung "where isDeleted = false" verwendet werden kann. Aber in meinem Batch, der die Zeiten überwacht, ist die Abfrage viel langsamer als die ohne explizite Bedingung. Zumindest der erste Lauf, dann sieht es schneller aus. Die Ergebnisse der Entwicklerkonsole waren jedoch immer aufregend. Kann mir jemand sagen warum und mir bitte helfen!salesforce isdeleted = false verlangsamt die Abfrage, anstatt sie zu verbessern
Antwort
Wo hast du es gelesen? Sieht mir sehr verdächtig aus. isDeleted = false
sollte keine Auswirkungen auf alle normalen Abfragen haben (diejenigen, die ALL ROWS
am Ende nicht haben), weil das ist, was sie aus der Box tun. Wenn überhaupt, wird die Ausführung möglicherweise verlangsamt, da der Abfrageoptimierer dieses Feld berücksichtigen müsste (es ist nicht indiziert, es wäre nutzlos, etwas zu indizieren, das zu 99% der gleiche Wert hat).
Sie können mit dem Abfrageoptimierer in der Entwicklerkonsole experimentieren und daran denken, dass Indexstatistiken normalerweise über Nacht neu berechnet werden. Wenn Sie also viele Testdaten geladen haben, können "heutige" Abfragen immer noch alte Statistiken ablaufen lassen.
Sie könnten es zu sehr komplizieren, indem Sie sich auf etwas verlassen, das einmalige Ergebnisse liefert, weil zum Beispiel die Auslastung des Servers zu dem Zeitpunkt niedrig war, als Sie mit dem Experiment begannen. Oder was auch immer das war, ist einfach undokumentiertes Verhalten, das sich mit einer der letzten Veröffentlichungen geändert hat. Wählen Sie einfach einen aussagekräftigen Index aus und erstellen Sie einen aussagekräftigen Index.
Mehr Lesestoff:
- https://developer.salesforce.com/docs/atlas.en-us.salesforce_large_data_volumes_bp.meta/salesforce_large_data_volumes_bp/ldv_deployments_infrastructure_indexes.htm
- https://developer.salesforce.com/docs/atlas.en-us.salesforce_large_data_volumes_bp.meta/salesforce_large_data_volumes_bp/ldv_deployments_techniques_deleting_data.htm
- https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_SOQL_VLSQ.htm
- 1. Optimieren Sie und verbessern Sie die Leistung dieser MYSQL-Abfrage
- 2. So verbessern Sie die LINQ-Abfrage
- 3. Notwendigkeit dieser SQL-Abfrage zu optimieren die Leistung zu verbessern
- 4. Versuchen, eine Abfrage zu verbessern
- 5. Verbessern Sie die Leistung in linq Abfrage - versuchen, die Abfrage von Unterabfrage zu Join zu ändern
- 6. MySQL: ORDER BY verlangsamt die Abfrage deutlich
- 7. Verbessern Sie die Leistung
- 8. entityframework Kernhandle isdeleted Spalten auf globaler Ebene
- 9. Ist es die Leistung verbessern, um einen Wert zu speichern, anstatt sie in einem Array
- 10. Warum DATEADD SQL-Abfrage verlangsamt?
- 11. MySQL Unterabfrage verlangsamt "Haupt" Abfrage
- 12. Verbessern Sie die Bildqualität
- 13. wie MySQL Abfrage verbessern?
- 14. Leistung verbessern postgresql Abfrage
- 15. Eine SQL-Abfrage verbessern
- 16. So verbessern Sie eine SQL-Abfrage-Performance
- 17. wie die Abfrage-Leistung in Apache zu verbessern, zünden
- 18. Verlangsamen Sie die SQL-Abfrage, wenn Sie zwei Tabellen verbinden, um die Abfragegeschwindigkeit zu verbessern?
- 19. Verschachtelte Ansicht verlangsamt Leistung, Auf der Suche nach einer Möglichkeit, die Leistung zu verbessern
- 20. So verbessern Sie diese linke Join-Abfrage
- 21. Verbessern Sie die Geschwindigkeit der Abfrage großer Abfragen
- 22. Verbessern Sie die Leistung der Abfrage mit Indexierung
- 23. Die Verwendung eines Feldes in Update drastisch verlangsamt die Abfrage
- 24. Verbessern Sie die Geschwindigkeit einer Realm-Abfrage in reaktionsnativen?
- 25. Verbessern Sie die Leistung von Warehouse Abfrage auf Exact Online
- 26. Verbessern Sie die Leistung in zwei `ODER` Bedingung` mySQL` Abfrage
- 27. verbessern Abfrage in PostgresSQL
- 28. PostgreSQL. Abfrage verbessern MIT
- 29. SQL-Abfrage: Ändern, um die Ausführungszeit zu verbessern
- 30. Wie die Leistung der Mysql-Abfrage zu verbessern