Bei zwei Tabellen, T1
mit Spalte a
und T2
mit Spalte b
, ist es möglich, einen Index auf eine Summe von Spalten T1.a + T2.b
anzuwenden? Ich habe kürzlich eine Frage zu diesem Index bekommen und war ziemlich überrascht, da die Frage nicht war, ob es möglich war (was ich nicht glaube), sondern eher eine Beispielabfrage beschleunigen würde. Wenn es möglich ist, was genau indexieren wir? Wäre es in Abfragen wie WHERE T1.a+T2.b = 3
oder in einigen anderen Fällen hilfreich? Vielen Dank!SQL-Index auf eine Summe von Spalten - ist das möglich?
Antwort
Ja, die meisten (nicht alle) Datenbanksysteme ermöglichen es Ihnen, einen Index für das Ergebnis eines Ausdrucks zu erstellen, sodass in diesen Systemen ein Index für die Summe zweier Spalten erstellt werden kann.
Wäre es in Abfragen wie
WHERE T1.a+T2.b = 3
oder in einigen anderen Fällen hilfreich?
Das hängt vollständig von der Abfrage ab, und welchen Plan der Compiler verwendet, um die Abfrage auszuwerten. Wenn Sie nach der Summe von zwei Spalten filtern und es relativ wenige Datensätze gibt, die diese Kriterien erfüllen, dann wird ein Index die Anzahl der zu durchsuchenden Datensätze verringern, um passende Datensätze zu finden.
Je nach Ihrem SQL-Produkt könnte es möglich sein, eine Ansicht zu indizieren, die eine Gruppe enthalten kann, um die persistenten Zusammenfassungswerte zu erhalten.
JEDOCH
Dies ist eine lokale Optimierung (google „kein freies Mittagessen“), so dass es in schneller wählen Leistung für Sie auf Kosten der langsameren Einfügungen und Aktualisierungen für andere führen.
Also angenommen, dass es in einem gegebenen dbms möglich ist, würde dieser Index die Abfrage mit der 'WHERE'-Klausel von' T1.a + T2.b = x' beschleunigen? Oder wäre es in einem anderen Fall nützlich oder gar nicht? – Marcin
- 1. Pandas Gruppe von und Summe zwei Spalten
- 2. Summe multiple Spalten
- 3. MySQL: Summe Subqueried Spalten
- 4. Summe der Spalten von 2D-Array
- 5. Summe von Ziffern, bis die Summe ist eine einstellige Zahl
- 6. JSF auf Tomcat - warum ist das möglich?
- 7. Conntrack auf Single-Interface - ist das möglich?
- 8. LINQ - Gruppe/Summe mehrerer Spalten
- 9. Get Summe von Array-Spalten in JavaScript
- 10. eine Zeile, wenn Summe der Spalten entspricht eine einzelne Spalte
- 11. Eine Wache auf einen WPF-Ereignisauslöser setzen. Ist das möglich?
- 12. Javascript: Ist das möglich?
- 13. Python Pandas bedingte Summe auf Datenrahmen, die auf mehrere Spalten
- 14. Nhibernate: Einschränkung Summe von 2 Spalten
- 15. Conditional Summe über mehrere Spalten
- 16. Summe Spalten pro Zeile postgresql
- 17. Ist es möglich, dass eine SQL-Tabelle null Spalten hat?
- 18. Summe 2 Spalten in Linq
- 19. Ist es möglich, Spalten Spalten in Spark Sql programmgesteuert?
- 20. Ist das in SQL möglich?
- 21. Was ist eine XOR-Summe?
- 22. Excel - SUMME für mehrere Spalten
- 23. Ist es möglich, auf zwei Spalten zu schwenken? (Wenn das auch die richtige Art ist, das zu fragen?)
- 24. eine lange Liste von grep -l bekommen - ist das möglich?
- 25. Summe und Wiederholung für Spalten
- 26. Ist es möglich, auf Android auf das Lautsprechersignal zuzugreifen?
- 27. Gefroren letzte Zeile von DataGridView als die Summe der Spalten?
- 28. SQL: Kumulierte Spalten & Summe über die Zeile
- 29. Wie Spalten auf mehreren Bedingungen in einer Gruppe Summe durch
- 30. Scribd API - ist das möglich?
Index sind produktspezifisch, welche DBMS verwenden Sie? – jarlh
Die Frage sollte implementierungsunabhängig sein und für alle dbms-s gelten. Nehmen wir einmal Oracle an, denn das ist, glaube ich, der Fragesteller täglich. – Marcin
Aber es ist nicht auf alle dbms anwendbar. – jarlh