Leute,
Ich führe die unten angegebene Abfrage in zwei verschiedenen Servern aus, die unterschiedliche Versionen von Postgresql haben, die seltsame Ergebnisse liefern.
einzeln auswählen "D","E","A","B","F","C","G","H","I","J","K","L" aus ABC wobei "L"=1 Gruppe nach "D", "E", "A", "B", "F", "C", "G", "H", "I", "L" Ordnung nach "A", "B", "C";
Server1: db details->PostgreSQL 8.3.9 auf i486-pc-linux-gnu, kompiliert mit GCC gcc-4.3.real (Debian 4.3.2-1.1) 4.3.2 AUSGABE DER ABFRAGE ERKLÄREN:
Unique (cost=16618.27..16884.84 rows=8202 width=71)
Sort (cost=16618.27..16638.78 rows=8202 width=71)
Sort Key: "A", "B", "C", "D", "E", "F","G", "H", "I", J, K
GroupAggregate (cost=13296.68..16085.07 rows=8202 width=71)
Sort (cost=13296.68..13501.71 rows=82011 width=71)
Sort Key: "A", "B", ""C"", "D", "E", "F", "G", "H", "I", "L"
Seq Scan on exims (cost=0.00..3236.14 rows=82011 width=71)
Filter: ("L" = 1)
Server2: db details->PostgreSQL 7.4.23 on x86_64-pc-linux-gnu, compiled by GCC cc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
EXPLAIN OUTPUT OF QUERY:
Unique (cost=22.73..22.90 rows=5 width=361)
Sort (cost=22.73..22.75 rows=5 width=361)
Sort Key: "A", "B", "C", "D", "E", "F","G", "H", "I", J, K, "L"
HashAggregate (cost=22.65..22.67 rows=5 width=361)
Seq Scan on exims (cost=0.00..22.50 rows=5 width=361)
Filter: ("L" = 1)
Für beide Server verwende ich dieselben Eingabetabellen mit 82011 Datensätzen, und die Ergebnisse sind Server1: Ausgabe dieser Abfrage -> 82011 Datensätze Server2: Ausgabe dieser Abfrage -> 53146 Datensätze
Soweit ich sehen kann, verwendet Server 2 die Hashaggregate-Methode, während Server 1 die Groupaggregate-Methode verwendet?
Kann mir jemand erklären, welchem Serverergebnis ich vertrauen sollte?
BR/ Vijay