yo,
Das schöne an der Quelldatenbank ist, dass sie nur zwei mal täglich von CSV-Files importiert, danach in eine Zieldatenbank aufbereitet wird und ab da nicht mehr zum schreiben verwendet wird.
es gibt halt unterschiedliche typen von Datenbanken, OLTP, OLAP, etc. je mehr wir wissen, was genau du importierst und was deine anforderungen sind, um so besser können wir hilfe leisten.
-> Indexe über Temp DB legen
du meinst sicherlich eine temp tabellen, eine temporäre datenbank wäre mir neu. und man muss schauen, ob man die indexe braucht.
-> Live DB durch Temp DB ersetzen
auch hier die frage, ob man immer alles neu machen muss, hängt aber von deinem umfeld ab.
Ich verstehe was du meinst, aber in dem konkreten Beispiel wird es noch andere Querries geben in denen auch die restlichen Felder benötigt werden.
das ist der falsche weg, indexe erst einsetzen und vor allem auch vorher testen, wenn man sie den braucht. es gibt viele, sehr viele dinge die verhindern, das ein index wie angedacht auch wirklich vom dbms benutzt wird.
Kann man beides mit "ja" beantworten. Die doppelten Werte würden später zu Problemen führen.
nur um noch mal sicher zu gehen, es gibt definitiv auch doppelte werte über alle spalten, die ausgegeben werden ?
und gibt es den werte in der ref_sp Tabelle, wo die oid spalte werte mit kleiner 0 haben ?
Nicht <0, aber =0
ahh, o werte hatte ich unterschlagen. und 0 werte kommen auch in beiden tabellen vor ? für das dbms ist es immer besser auf gleichheit zu prüfen, als auf größer/kleiner oder ungleichheit. dies könntest du mit einem trick erreichen, indem du in einer zusätzlichen spalte alle werte mit 0 auf 0 beläßt und die anderen auf 1 füllst. dannach einen zusammengestzten index erstellen.
noch mal den tipp, vinzenz hat ihn dir auch gegeben, benutze explizite joins- mir ging es ähnlich am anfang wollte ich nicht aus gewohnheit. aber du wirst es zu schätzen wissen.
Ilja