Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#4

AW: Spalten ohne Varianzen

  Alt 22. Apr 2014, 12:04
Zitat:
stellst du dir das mit der abfrage dann so vor:
fast, nur ohne 'HAVING'. Du bekommst eine Zeile und prüfst dann für jedes Feld, ob 'Min_Fieldx <>Max_Fieldx'. Wenn ja, hat die Spalte 'Fieldx' eine Varianz, so wie Du das nennst, bzw. unterschiedliche Werte.
Min_Field1Max_Field1Min_Field2Max_Field2
1233
Field1 hat unterschiedliche Werte, Field2 nicht.

Der Vorteil ist der, das pro Tabelle der Tablescan nur 1x durchgeführt wird (was er aber ohnehin muss). D.h. dieses Verfahren verkürzt deine Suche in etwa um den Faktor P, wobei P die durchschnittliche Anzahl von Spalten pro Tabelle ist. Natürlich würden einige Felder über einen Indexscan laufen, wenn man das separat pro Feld durchführt, aber länger dauert es in jedem Fall (außer, alle Felder sind indiziert).

Ich würde dein Script so umschreiben, das es einfach die o.g. dynamische Query pro Tabelle erzeugt, und das dann durchlaufen lassen. Die Prüfung, ob 'Min_Fieldx<>Max_Fieldx' kannst du immer noch machen. Du würdest dann aber sehen, ob und wieviel das bringt.

Ach, und sei mir nicht böse, aber auch 2014 ist es wünschenswert, vollständige deutsche Sätze mit korrekter Rechtschreibung und Grammatik zu posten. Das hat etwas mit Respekt vor demjenigen zu tun, der deinen Beitrag liest und dir helfen will: Stecke also mindestens die gleiche Sorgfalt in die Formulierung deines Beitrages wie Du erwartest (oder erhoffst), das der Antwortgeber es mit seiner Antwort tut. Wobei das ganz schön schwer ist, wenn man gerade wegen so einer Aufgabe angefressen ist.

Ich könnte nämlich auch einfach schreiben:
"Man, eine queri üba ale felda vonner tablele. No prob, bro."

PS: Schneller als das geht es imho nicht (oder Du legst über alle Spalten einen Index, am besten einen Column Store).

Geändert von Dejan Vu (22. Apr 2014 um 12:07 Uhr)
  Mit Zitat antworten Zitat