Als «optimization» getaggte Fragen

Im Kontext einer Datenbank bezieht sich Optimierung auf den Prozess des Abfrageoptimierers, der einen effizienten physischen Ausführungsplan auswählt.


2
Join-Abfrage dauert 11 Minuten und wird in einer Tabelle mit 300.000 Zeilen ausgeführt
Die Ausführung der folgenden Abfrage dauert mehr als 11 Minuten. SELECT `c`.*, `e`.`name` AS `employee_name`, `e`.`emp_no`, `d`.`code` AS `department_code`, IF(ew.code IS NOT NULL, ew.code, egw.code) AS shift_code, IF(ew.code IS NOT NULL, ew.time_in_from, egw.time_in_from) AS time_in_from, IF(ew.code IS NOT NULL, ew.time_out_to, egw.time_out_to) AS time_out_to, IF(ew.code IS NOT NULL, ew.next_day, egw.next_day) AS …

3
Warum führt meine EXISTS-Abfrage eine Indexsuche anstelle einer Indexsuche durch?
Ich arbeite an der Optimierung einiger Abfragen. Für die Abfrage unten, SET STATISTICS IO ON; DECLARE @OrderStartDate DATETIME2 = '27 feb 2016'; DECLARE @OrderEndDate DATETIME2 = '28 feb 2016'; SELECT o.strBxOrderNo , o.sintOrderStatusID , o.sintOrderChannelID , o.sintOrderTypeID , o.sdtmOrdCreated , o.sintMarketID , o.strOrderKey , o.strOfferCode , o.strCurrencyCode , o.decBCShipFullPrice , …

2
Warum ändern sich die SQL Server-Zeilenschätzungen, wenn ich einen Verknüpfungshinweis hinzufüge?
Ich habe eine Abfrage, die ein paar Tabellen verknüpft und ziemlich schlechte Ergebnisse erzielt - Zeilenschätzungen sind weit entfernt (1000-mal), und der Join mit verschachtelten Schleifen wird ausgewählt, was zu mehreren Tabellensuchen führt. Die Form der Abfrage ist recht einfach und sieht ungefähr so ​​aus: SELECT t1.id FROM t1 INNER …


2
Index für eine fortgesetzte berechnete Spalte nicht suchbar
Ich habe eine Tabelle aufgerufen Address, die eine dauerhaft berechnete Spalte namens hat Hashkey. Die Spalte ist deterministisch, aber nicht präzise. Es hat einen eindeutigen Index, der nicht auffindbar ist. Wenn ich diese Abfrage ausführe, wird der Primärschlüssel zurückgegeben: SELECT @ADDRESSID= ISNULL(AddressId,0) FROM dbo.[Address] WHERE HashKey = @HashKey Ich habe …


3
Indizes für SQL-Abfragen mit WHERE-Bedingung und GROUP BY
Ich versuche festzustellen, welche Indizes für eine SQL-Abfrage mit einer WHEREBedingung verwendet werden sollen und GROUP BYwelche zurzeit sehr langsam ausgeführt wird. Meine Frage: SELECT group_id FROM counter WHERE ts between timestamp '2014-03-02 00:00:00.0' and timestamp '2014-03-05 12:00:00.0' GROUP BY group_id Die Tabelle enthält derzeit 32.000.000 Zeilen. Die Ausführungszeit der …

3
Optimieren einer CTE-Hierarchie
Update unten Ich habe eine Kontentabelle mit einer typischen Konto- / übergeordneten Kontenarchitektur, um eine Kontenhierarchie darzustellen (SQL Server 2012). Ich habe eine VIEW mit einem CTE erstellt, um die Hierarchie auszusortieren, und im Großen und Ganzen funktioniert es wunderbar und wie beabsichtigt. Ich kann die Hierarchie auf jeder Ebene …

2
So optimieren Sie die T-SQL-Abfrage mithilfe des Ausführungsplans
Ich habe eine SQL-Abfrage, die ich in den letzten zwei Tagen versucht habe, mithilfe von Trial-and-Error und des Ausführungsplans zu optimieren, aber ohne Erfolg. Bitte verzeihen Sie mir, aber ich werde den gesamten Ausführungsplan hier veröffentlichen. Ich habe mich bemüht, die Tabellen- und Spaltennamen im Abfrage- und Ausführungsplan sowohl aus …

3
Warum gibt es Ausführungsplanunterschiede zwischen OFFSET… FETCH und dem alten ROW_NUMBER-Schema?
Das OFFSET ... FETCHmit SQL Server 2012 eingeführte neue Modell bietet einfaches und schnelleres Paging. Warum gibt es überhaupt Unterschiede, wenn man bedenkt, dass die beiden Formen semantisch identisch und sehr häufig sind? Man würde annehmen, dass der Optimierer beide erkennt und sie (trivial) vollständig optimiert. Hier ist ein sehr …

1
Warum ist die Anzahl der durchgeführten Clustered-Index-Scans so hoch?
Ich habe zwei ähnliche Abfragen, die denselben Abfrageplan generieren, mit der Ausnahme, dass ein Abfrageplan 1316-mal einen Clustered-Index-Scan ausführt, während der andere 1-mal ausgeführt wird. Der einzige Unterschied zwischen den beiden Abfragen besteht in unterschiedlichen Datumskriterien. Durch die Abfrage mit langer Laufzeit werden die Datumskriterien tatsächlich enger und es werden …

2
Optimierung: Verschieben von Variablendeklarationen an den Anfang Ihrer Prozedur
Während ich an der Optimierung einiger gespeicherter Prozeduren arbeitete, setzte ich mich mit dem DBA zusammen und durchlief einige gespeicherte Prozeduren mit hoher Blockierungs- und / oder hoher Lese- / Schreibaktivität. Eine Sache, die der DBA erwähnte, war, dass ich alle Variablen (insbesondere TABLEdiejenigen) oben in der gespeicherten Prozedur deklarieren …

2
"In tmp-Tabelle kopieren" ist extrem langsam
Dies ist mein Beispiel für eine Abfrage: SELECT nickname, CASE class_id WHEN 1 THEN 'Druid' WHEN 2 THEN 'Necromancer' WHEN 3 THEN 'Mage' WHEN 4 THEN 'Priest' WHEN 5 THEN 'Warrior' WHEN 6 THEN 'Stalker' WHEN 7 THEN 'Paladin' WHEN 8 THEN 'Psionic' END class_name, ROUND(AVG(level),2) level, ROUND(AVG(tabard_id),2) tabard, CASE …


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.