Nach Hause
Top.Mail.Ru Yandeks.Metrika
Forum: "Grundlagen";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

Nach unten

Schneller Zugriff auf die ORACLE DB Finden Sie ähnliche Zweige


Yelchev   (2001-12-03 10:26) [0]

Es gibt ein Problem Es gibt eine Datenbank mit ungefähr einer Million Datensätzen mit Blob-Feldern. Ich benutze die Komponente Oracle Direct Acess. Das Lesen nimmt viel Zeit in Anspruch. So optimieren Sie das zeitliche Lesen von Tabellen und was sind die Komponenten für einen schnelleren Zugriff auf die Datenbank. Zum Beispiel würde ich sagen, dass Sie 25000-Minuten benötigen, um 20-Datensätze mit einem Volumen von jeweils 15K auszuwählen



Владислав   (2001-12-03 11:22) [1]

Der Text der Anfrage an das Studio.



petr_v_a   (2001-12-03 11:24) [2]

Schnellere Komponenten gibt es kaum, wenn jemand schneller ist, dann nicht manchmal. Die Gegenfrage ist, warum ein Client 25000-Datensätze ziehen? Der Benutzer akzeptiert keine weiteren 50-100-Datensätze im Raster, möchte eine zusätzliche "Suche in den gefundenen" und so weiter. Lesen Sie auf Datenbankebene die LOB-Speicherparameter. Es gibt 100-Seiten



Yelchev   (2001-12-03 12:22) [3]

Der Benutzer ist überhaupt nicht beleuchtet. Folgendes wird aus den Aufzeichnungen des Vlob-Massivs ausgewählt, dann werden mathematische Berechnungen durchgeführt und am Ende des Vergleichs wird eine kleine Liste angezeigt. Es werden keine Gitter verwendet. Kann mir jemand sagen, wie man das Problem der schnellen Arbeit mit einer solchen Datenbank löst? Bei einer Menge von 1000000-Datensätzen dauert der Lesevorgang im Allgemeinen einen halben Tag! Alle beantworteten Fragen werden sehr dankbar sein.))



Yuvich   (2001-12-03 12:44) [4]

Aaaa, also dauert keine Abtastung ~ 15min., Und die Verarbeitung von blobov 15min dauert. Hier gilt es zu schauen, was in einer blobstrukturierten Information gespeichert ist oder nicht. Wenn es strukturiert ist, muss es in die Tabelle eingefügt und die Verarbeitung nicht in der Abtastphase, sondern in der Schreibphase in die Tabelle ausgeführt werden. Wenn nicht strukturiert, versuchen Sie dennoch, Informationen in Form einer Struktur darzustellen. Wie ein Mathematiker sagte: "Es gibt keinen solchen Themenbereich, der nicht als hierarchische Struktur dargestellt werden könnte."



Yelchev   (2001-12-03 12:50) [5]

Nein, überhaupt nicht. Ich habe die Experimente durchgeführt, indem ich die Daten ohne Verarbeitung abgetastet habe. Und die Struktur der Daten kann nicht verbunden werden, so dass es sich um Arrays handelt, die das verarbeitete Bild beschreiben und die Sie nicht trennen können! Im Allgemeinen, wenn es möglich ist, etwas über die Lösung solcher Probleme im Zusammenhang mit der Verwendung großer DBs zu lesen.



petr_v_a   (2001-12-03 13:33) [6]

Das ist schlimmer. aufmerksam Lesen Sie über Speicherparameter LOB :). Überprüfen Sie für v $ session_wait und v $ system_event, welche Zeit tatsächlich aufgewendet wird.Wenn solche BLOB-Volumes berechnet werden, kann es sich lohnen, externe Prozeduren in Betracht zu ziehen.Im Allgemeinen kann Oracle meiner Meinung nach keine großen Volumes an den Client pumpen.



Yelchev   (2001-12-03 13:55) [7]

Und wie viel bekomme ich mit der Zeit, wenn ich einen Vergleich in die Shell des Orakels einbinde (sofern dies möglich ist und keine Informationen auf den Client heruntergeladen werden, vorausgesetzt, der Vergleich der in der Box gespeicherten Arrays erfordert Fouriertransformation und andere arithmetische Operationen + Zuweisung einer großen Speichermenge (zu 29M)



Mick   (2001-12-03 14:05) [8]

Wenn Oracl auf Wintel ist, würde ich die Verarbeitung von Blobs auf den Server übertragen. Das ist der übliche Drei-Sterne.



Yelchev   (2001-12-03 14:11) [9]

"Das heißt, die üblichen drei Sterne"? Ich entschuldige mich für meine Inkompetenz, aber was bedeutet das?



petr_v_a   (2001-12-03 14:29) [10]

Der einfachste Weg, den Zeitgewinn abzuschätzen, ist das Schreiben
beginnen
für cr in (<Ihre Anfrage>) Schleife
null;
end;
end;
und zu sehen, wie viel getan wird es



Yuvich   (2001-12-03 15:48) [11]

Mike sagt richtig - Sie müssen die Verarbeitung zum Server bringen, dann hängt die Verarbeitungsgeschwindigkeit von der Kapazität des Servers und nicht von der Kapazität des Clients ab.

Auch wenn Oracle nicht unter Wintel läuft, können Sie eine PL / SQL-Prozedur schreiben und daraus eine andere Prozedur aufrufen, die als extern und geschrieben bezeichnet wird, z. B. in C oder Cobol. Eine andere Sache ist, dass Sie die Sprache des Betriebssystems kennen müssen, auf dem Oracle steht und den Oracle-Aufruf unterstützt. Genauer gesagt: Sie müssen die Dokumentation lesen.



petr_v_a   (2001-12-03 16:29) [12]

"called external" kann sowohl in Delphi als auch in Assembler geschrieben werden, Hauptsache Call Call Agreements. Was Wintel betrifft, so enthält die Dokumentation (meine Übersetzung) einen intelligenten Satz: "Externe Prozeduren werden auf jeder Plattform unterstützt, die eine DLL unterstützt, z. B. Solaris." :))



Yuvich   (2001-12-03 17:12) [13]

Ich glaube nicht, dass eine in Delphi geschriebene DLL unter Solaris verwendet werden kann, weshalb ich sage, dass mindestens in Assemblersprache in der Sprache geschrieben werden muss, deren Compiler sich im Betriebssystem befindet.

In Bezug auf den "intelligenten Ausdruck" gibt es eine Ergänzung: ... Unterstützung von DLLs oder dynamisch geladenem Freigabezugriff, Bibliotheken ..., zum Beispiel Solaris .so-Bibliotheken.



Yuvich   (2001-12-03 17:15) [14]

Aus der gleichen Dokumentation der Satz:

Es kann also in einer niedrigeren Sprache wie C durchgeführt werden, was effizienter ist. Zum Beispiel a Schnelle Fourier-Transformation (FFT) PL / SQL.



petr_v_a   (2001-12-03 17:53) [15]

> Yuvich :) Nun, okay, diese, ich wollte keine in Delphi geschriebene DLL verwenden, um sie unter Solaris zu verwenden :) Der Punkt war, dass Sie alles auf irgendetwas schreiben konnten, solange der Aufruf sish war. Dass es losgehen soll, ist klar :)



Yuvich   (2001-12-03 18:02) [16]

> petr_v_a
Nichts persönliches. Vielleicht habe ich etwas nicht verstanden.



ASV   (2001-12-04 03:11) [17]

Und die Arithmetik hier ist sehr einfach. Grid hast du dann wohl 10Mb wert?
Also 25000 * 20K = 500000K, das bei einer durchschnittlichen Netzwerkbandbreite von 600K / s 13,8 Minuten ergibt.
Und nichts hier, außer die Berechnung auf den Server zu übertragen, kann nicht durchgeführt werden.

Alexander Sviridenkov



Seiten: 1 ganze Branche

Forum: "Grundlagen";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

nach oben









Speicher: 0.87 MB
Zeit: 0.044 c
4-22455
Maamed
2001-10-31 10:13
2002.01.08
Aktivieren Sie ein anderes Programmfenster


1-22178
Anastasia
2001-12-15 21:38
2002.01.08
Benötigen Sie Informationen?


1-22157
Flagman
2001-12-20 13:55
2002.01.08
Finden Sie zwei Wagenrückläufe in einer Reihe.


7-22438
Sasha
2001-08-17 16:14
2002.01.08
Sprachmodem


1-22045
Socol
2001-12-15 17:14
2002.01.08
In die Datei schreiben





Afrikanisch albanisch Arabic Armenisch Aserbaidschanisch Baskisch Weißrusse Bulgarian katalanisch Chinesisch (vereinfacht) Chinesische Tradition) kroatisch Tschechisch Dänisch Dutch Englisch estnisch Philippinisch Finnish Französisch
Galicisch Georgisch Deutsch Griechisch haitian Creole hebräisch Hindi ungarisch isländisch Indonesian irisch Italian Japanisch Koreanisch lettisch litauisch Makedonisch Malay Maltesisch Norwegian
persisch Polnisch Portugiesisch rumänisch Russisch serbisch Slovak Slowenisch Spanisch swahili Swedish Thai Türkisch Ukrainisch Urdu Vietnamesisch Walisisch Jiddisch Bengalisch bosnisch
cebuano Esperanto Gujarati Hausa Hmong igbo Javanisch kannada khmer Laotisch Lateinisch Maorisch Marathi Mongolisch nepali Pandschabi Somalisch Tamilisch Telugu yoruba
Zulu
Английский Französisch Deutsch Italienisch Португальский Russisch Spanisch