Als «optimization» getaggte Fragen

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



1
Langsame Abfragen werden nicht protokolliert
Ich versuche, die langsame Abfrageprotokollierung auf unserem Server zu aktivieren, um Abfragen zu identifizieren, die optimiert werden könnten. Klingt einfach, meine Datei wird jedoch nicht beschrieben. Ich bekomme keine Fehler oder ähnliches, es scheint nur nicht die langsamen Abfragen zu protokollieren. Ich habe daran gedacht, mysql nach meinen Konfigurationsänderungen neu …

1
Warum verwenden diese ähnlichen Abfragen unterschiedliche Optimierungsphasen (Transaktionsverarbeitung vs. Schnellplan)?
Der Beispielcode in diesem Verbindungselement Zeigt einen Fehler wo SELECT COUNT(*) FROM dbo.my_splitter_1('2') L1 INNER JOIN dbo.my_splitter_1('') L2 ON L1.csv_item = L2.csv_item Liefert die korrekten Ergebnisse. Das Folgende gibt jedoch falsche Ergebnisse zurück (2014 mit dem neuen Kardinalitätsschätzer) SELECT (SELECT COUNT(*) FROM dbo.my_splitter_1('2') L1 INNER JOIN dbo.my_splitter_1('') L2 ON L1.csv_item …

2
Überprüft eine WHERE-Abfrage einfachere Vergleiche (z. B. Bit), bevor schwierigere Vergleiche (z. B. Varchar) ausgeführt werden?
Wenn ich eine Abfrage schreibe, die eine zusammengesetzte WHEREKlausel enthält, zB: SELECT * FROM MyTable WHERE BitField = 1 AND VarcharField = 'asdf' und die Einbeziehung dieses bitVergleichs schließt einfach die gleichen Felder aus, die der varcharVergleich ausschließt. Wird das Vorhandensein dieses bitFeldvergleichs zu einer Leistungsverbesserung führen?

2
Warum verwendet diese Abfrage meinen nicht gruppierten Index nicht und wie kann ich ihn erstellen?
Als Antwort auf diese Frage zur Steigerung der Abfrageleistung möchte ich wissen, ob es eine Möglichkeit gibt, meinen Index standardmäßig zu verwenden. Diese Abfrage dauert ungefähr 2,5 Sekunden: SELECT TOP 1000 * FROM [CIA_WIZ].[dbo].[Heartbeats] WHERE [DateEntered] BETWEEN '2011-08-30' and '2011-08-31'; Dieser läuft in ca. 33ms: SELECT TOP 1000 * FROM …


2
Die Verwendung von NOT-Logik in Bezug auf Indizes
Laut dem Microsoft-Buch zur Datenbankentwicklung Prüfung 70-433: Microsoft SQL Server 2008-Datenbankentwicklung : Weder führende Platzhalterzeichen noch NOT- Logik ermöglichen es dem Abfrageoptimierer, Indizes zur Optimierung der Suche zu verwenden. Um eine optimale Leistung zu erzielen, sollten Sie die Verwendung des Schlüsselworts NOT und der führenden Platzhaltersymbole vermeiden . Also nahm …


2
MAXDOP = 1, Abfragehinweise und Kostenschwelle für Parallelität
Wenn eine Instanz MAXDOPauf 1 gesetzt wurde und Abfragehinweise verwendet werden, damit bestimmte Abfragen parallel geschaltet werden können, wird der Wert für den Kostenschwellenwert für Parallelität von SQL weiterhin verwendet, um zu entscheiden, ob tatsächlich parallel geschaltet werden soll oder nicht? Ich konnte diese spezifischen Informationen nicht ausgraben, obwohl dieser …

2
Langsame Index-Scans in einer großen Tabelle
Mit PostgreSQL 9.2 habe ich Probleme mit langsamen Abfragen in einer relativ großen Tabelle (mehr als 200 Millionen Zeilen). Ich versuche nichts Verrücktes, sondern füge nur historische Werte hinzu. Unten finden Sie die Abfrage und die Ausgabe des Abfrageplans. Mein Tabellenlayout: Table "public.energy_energyentry" Column | Type | Modifiers -----------+--------------------------+----------------------------------------------------------------- id …

2
Wie können Zeilenschätzungen verbessert werden, um die Wahrscheinlichkeit von Verschüttungen auf Tempdb zu verringern?
Ich stelle fest, dass die Zeilenschätzungen für einen bestimmten Join häufig weit entfernt sind, wenn Tempdb-Ereignisse verschüttet werden (was zu langsamen Abfragen führt). Ich habe gesehen, dass bei Merge- und Hash-Joins Überlaufereignisse auftreten, die die Laufzeit häufig um das 3-fache bis 10-fache erhöhen. Diese Frage betrifft die Verbesserung der Zeilenschätzungen …

1
Postgres: count (*) vs count (id)
Ich habe in der Dokumentation den Unterschied zwischen count(*)und gesehen count(pk). Ich hatte count(pk)(wo pkist a SERIAL PRIMARY KEY) verwendet, ohne über die Existenz von zu wissen count(*). Meine Frage betrifft die internen Optimierungen von Postgres. Ist es klug genug zu erkennen, dass a SERIAL PRIMARY KEYin jeder Zeile existieren …



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.