Sandsack Bei der Arbeit an Top Quality Blog Posts® bin ich auf ein Optimierungsverhalten gestoßen, das mich sehr verärgert hat . Ich habe nicht sofort eine Erklärung, zumindest nicht eine, mit der ich zufrieden bin, also schreibe ich sie hier für den Fall, dass jemand klug auftaucht. Wenn Sie mitmachen …
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 …
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 …
Ich habe eine Tabelle mit 2 Spalten. Der Typ beider Spalten ist auf festgelegt varchar(38). Wenn ich eine Zeile mit einem leeren Wert für eine der Spalten erstelle, wird derselbe Speicherplatz beansprucht, als ob der Wert nicht leer wäre? Mit anderen Worten, reserviert MySQL Speicherplatz für die Spalte (abhängig vom …
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 …
Ich habe eine Tabelle mit einem eindeutigen Index, der nach nicht nullwertfähigen Werten gefiltert wird. Im Abfrageplan gibt es die Verwendung von distinct. Gibt es einen Grund dafür? USE tempdb CREATE TABLE T1( Id INT NOT NULL IDENTITY PRIMARY KEY ,F1 INT , F2 INT ) go CREATE UNIQUE NONCLUSTERED …
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 …
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 …
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 …
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 …
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 …
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 …
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 …
Tabelle that zwei Indizes: create table t (a int, b int); create type int_pair as (a int, b int); create index t_row_idx on t (((a,b)::int_pair)); create index t_a_b_idx on t (a,b); insert into t (a,b) select i, i from generate_series(1, 100000) g(i) ; Für den anyOperator wird kein Index verwendet …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.