Frage zur Lösung des Problems.

14/08/2008 - 10:33 von Peter Haus | Report spam
Hallo NG.

Ich habe eine Oracle DB mit ca. 23 Millionen Eintràgen.
Diese Eintràge sind Dateinamen von Dokumenten.
Auf die DB kann ich nur lesend zugreifen.
Um eine Konsistenzprüfung (DB <-> Dokumente) durchführen zu können, möchte
ich alle Dateinamen auslesen
und in eine Datei ablegen.
Diese Datei mit den darin enthaltenen Dateinamen, danach zum suchen der
Dokument-Dateien verwenden.

Bei der Datenmenge wird mir ein bisschen schwindelig, deshalb evtl. eine
doofe Frage.
Wie kann ich die Dateinamen aus der Tabelle auslesen, ohne ein
"Select Name, Ext From Tabelle" zu machen, weil ich denke,
dass ich damit das System über eine gewisse Zeit blockiere.
Wie lange, habe ich leider keine Vorstellung.
Mir fehlt eben die Vorstellung, wie mit dieser Datenmenge umgegangen wird.


Desweiteren noch die Frage:
Ich hatte noch nie mit Oracle etwas zu tun, und kann auch nicht vor Ort
einfach an einem PC testen.
Zur Zeit laufen alle Verbindungen zur DB über ODBC. Ich wollte gerne einen
.NET Provider verwenden.
Ist es genau so einfach, auf eine Oracle DB zuzugreifen wie auf eine SQL
Server DB?
Für mich am einfachsten wàhre, auf meinem PC mit SQL-Server und Testdaten,
das Programm zu entwickeln und danach nur den Connection String zu àndern.
Was muss auf dem PC (Oracle bezogen) drauf sein?


Viele Grüsse
Peter
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
14/08/2008 - 11:36 | Warnen spam
Hallo Peter,

"Peter Haus" schrieb:

Ich habe eine Oracle DB mit ca. 23 Millionen Eintràgen.



was für eine ordentliche Datenbank nicht unbedingt viel ist.

Diese Eintràge sind Dateinamen von Dokumenten.



Du hast dann auch 23 Millionen Dokumente? Ok, das wiederum find ich dann
nicht so wenig :)

Um eine Konsistenzprüfung (DB <-> Dokumente) durchführen zu können, möchte
ich alle Dateinamen auslesen und in eine Datei ablegen.



Wenn die Dateinamen alle eineutig sind, geht das mit:

SELECT <Spaltenname> FROM <Tabelle>

Wenn die Dateinamen nicht eineutig sind, geht das bspw. mit:

SELECT DISTINCT <Spaltenname> FROM <Tabelle>

Diese Datei mit den darin enthaltenen Dateinamen, danach zum suchen der
Dokument-Dateien verwenden.



Evtl. kannst Du das über eine SP oder ein Package lösen. Dann wird die
Datei serverseitig zusammengesetzt, ggfs. noch komprimiert und dann an
dich übertragen. Dann hat der Server zwar etwas mehr zu tun, die Daten-
menge, die dann schlußendlich übertragen werden muss, ist aber um einiges
geringer.

Wie kann ich die Dateinamen aus der Tabelle auslesen, ohne ein
"Select Name, Ext From Tabelle" zu machen,



Gar nicht.

weil ich denke,
dass ich damit das System über eine gewisse Zeit blockiere.



Das DBMS sollte damit kein Problem haben, die zu übertragende Datenmenge
ist zwar (bei einer angenommen Satzgröße von ca. 100 Byte) schon im Giga-
bytebereich, aber das sollte auch nicht unbedingt so tragisch sein, dauert
halt nur ein wenig.

Ist es genau so einfach, auf eine Oracle DB zuzugreifen wie auf eine SQL
Server DB?



Ja. Jedes DBMS hat natürlich seine Eigenheiten. Dazu gibt es kleine und
große Unterschiede in der SQL Syntax, vom Grund her ist das aber gleich.

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen