java.sql.SQLException: out of memory

Status
Nicht offen für weitere Antworten.

mephi

Bekanntes Mitglied
Ich hab mal eine Frage..

zu Testzwecken, habe ich mal 15000 tables in meine DB eingetragen. aber bei der Methode getColumns von DatabaseMetaData bekomm ich eine SQLException: out of memory

verkraftet die Methode nicht soviele tables oder kann ich die abfrage irgendwie besser designen?

Code:
ResultSet rsFields = m_dbmd.getColumns(null, null, tableName, "%");

tablename ist PROFESSOR1 bis PROFESSOR15000 mit jeweils ca 10 feldern.
 
S

SlaterB

Gast
15.000 Tables mit einer gewissen Menge an Columns können doch durchaus die 64 MB Standard-Speicher sprengen,
was ist jetzt groß die Frage?
 

mephi

Bekanntes Mitglied
ob man das durch ein besseres design umgehen kann bzw ob es eine andere methode gibt?
 
S

SlaterB

Gast
wofür denn?
15.000 laden -> Error
nicht 15.000 laden -> kein Error

insofern is es ein besseres Design, die 15.000 nicht zu laden, ja

oder sprichst du von irgendeiner speicherschonenderen Darstellung? was soll man groß sagen wenn du an Information gibtst
'lade viele Daten -> Error'
 

mephi

Bekanntes Mitglied
ja ich such eine speicherschonende darstellung. mit DB hatte ich noch nicht wirklich viel zutun.

die test tables haben alle 8 colums

irgendwie muss es doc auch möglich sein viel größere datenbanken nach einer table zu durchsuchen. oder kommt sowas nicht vor? ich hatte noch nie einblick in die DBs von irgendwelchen firmen
 
S

SlaterB

Gast
wenn du nicht alle Daten gleichzeitig brauchst, dann lade sie in Schritten,

15.000 Tabellen zu laden, um in einer Datenbank 'nach einer table zu durchsuchen', erscheint generell fragwürdig

mehr kann man ohne Informationen von dir immer noch kaum sagen
 

mephi

Bekanntes Mitglied
was für informationen brauchst du denn?
also das tool soll möglichst für alle datenbanken einsetzbar sein. unabhängig vom inhalt.

ich dachte ja am anfang dass das getColums nicht alle tabellen läd, sondern die datenbank nach der passenden tabelle bzw den passenden tabellen durchsucht. aber leider ist dem ja nicht so.
 

Murray

Top Contributor
Vielleicht ist ja das Datenbank-Design das Problem - welche ernsthafte Datenbank hat denn wirklich 15.000 Tabellen?
 

mephi

Bekanntes Mitglied
Ich bin einfach mal von einer großen Anzahl ausgegangen. Aber wenn du meinst, dass sowas eigentlich nicht vorkommt, dann kann ich mir das auch sparen und mich mit zB 2k-5k zufrieden geben ;)
 

DP

Top Contributor
teste mal

Code:
ResultSet rs = s.executeQuery("describe tabelle");
       
while(rs.next()){
  System.out.println(rs.getString(1));
}
 
S

SlaterB

Gast
mephi hat gesagt.:
was für informationen brauchst du denn?
z.B. die ein wahre, einzig wichtige Info bei allem auf der Welt: was ist das Ziel, was soll erreicht werden,
wenn man das weiß, DANN kann man anfangen über einen sinnvollen Weg dahin nachzudenken
 

FenchelT

Bekanntes Mitglied
DP hat gesagt.:
teste mal

Code:
ResultSet rs = s.executeQuery("describe tabelle");
       
while(rs.next()){
  System.out.println(rs.getString(1));
}

Hallo DP,

ich glaube, das wird ihm nicht viel bringen; er will ja das es auf allen DBMS laeuft.
MSSQL kennt z.B. den describe Befehl nicht
 

mephi

Bekanntes Mitglied
Das ganze ist ein SQLGenerator der in einem größeren Framework verwendet werden soll.

Die Abfragen werden auf einer HP eingegeben. Um bei vielen Abfragen Fehler zu vermeiden, schreib ich den SQLGenerator. Man sagt zB sql.copy("mytable", "id", "neue id");
und dann liest der generator entweder aus dem cache oder aus der DB die nötige tabelle aus und generiert den sql code dafür

das wars im groben.. :)
 
S

SlaterB

Gast
nichts davon klingt nach '15.000 Tabellen laden',

was hat dieses Problem, SQL für eine einzelne Tabelle zu generieren, mit '15.000 Tabellen laden' zu tun?

ist diese Frage so undenkbar?
 

mephi

Bekanntes Mitglied
Wenn ich wüsste wie ich nur eine laden kann..

Der Generator brauch ja die Spaltennamenm je nachdem welchen sql befehl er generieren soll..
unteranderem werden von einer anderen klasse auch eingabefelder generiert, passend zur tabelle die man sich aussucht. um zB ein insert zu ermöglichen
 
S

SlaterB

Gast
was spricht dagegen, nur die Spaltenamen der EINEN Tabelle zu laden statt der ALLER 15.000?

in
ResultSet rsFields = m_dbmd.getColumns(null, null, tableName, "%");
kannst du doch die Tabelle angeben an Stelle von %?

edit: ne, du hast ja schon tableName davor ;),
also du hast ein Anfrage auf eine bestimmte Tabelle, bekommst aber alle 15.000 Tabellen?
aha, eine neue Information ;)
 

mephi

Bekanntes Mitglied
das nehm ich an. werde mir jetzt mal den quellcode raussuchen.

aber anders kann ich mir die fehlermeldung nicht erklären.

edit:
ach was wohl wichtig ist. teste das ganze auf einer hsqldb :)
 

mephi

Bekanntes Mitglied
Konnte das ganze jetzt auf einer mssql datenbank testen. da läuft das ohne probleme und ist sogar richtig schnell.

dann liegt das wohl an den treibern für die hsqldb?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
V SQLite java.sql.SQLException: no such column: Datenbankprogrammierung 18
B Probleme mit java.sql.SQLException: ResultSet closed Datenbankprogrammierung 21
nrg Oracle java.sql.SQLException Ungültiger Vorgang bei schreibgeschützter Ergebnismenge Datenbankprogrammierung 0
Y java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state Datenbankprogrammierung 2
I java.sql.SQLException: No data found Datenbankprogrammierung 3
T java.sql.SQLException: unexpected end of statement Datenbankprogrammierung 2
H java.sql.SQLException: Access denied for user 'root'@'localhost' (using password : YES) Datenbankprogrammierung 1
D java.sql.SQLException Datenbankprogrammierung 3
M java.sql.SQLException: Unable to open file Datenbankprogrammierung 2
zilti java.sql.SQLException: Before start of result set Datenbankprogrammierung 2
C FM: java.sql.SQLException: Geschlossene Ergebnismenge: next Datenbankprogrammierung 7
A Problem: java.sql.SQLException Datenbankprogrammierung 5
I hilfe! java.sql.SQLException Datenbankprogrammierung 7
M java.sql.SQLException: No data found Datenbankprogrammierung 9
K MsAccess immer beim zweiten Update java.sql.SQLException Datenbankprogrammierung 28
R MySQL denies access to data source - java.sql.SQLException Datenbankprogrammierung 14
K java.sql.SQLException: Before start of result set Datenbankprogrammierung 2
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
P Reicht finally nicht um DB connections zu schließen in (altem) Java? Datenbankprogrammierung 4
A Java DB Server lässt sich nicht starten Datenbankprogrammierung 3
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
U SQL Server mit Java verbinden Datenbankprogrammierung 5
D SQLite Datenbank in Android Studio (Java) durchsuchen Datenbankprogrammierung 3
TH260199 Java-Programm. Probleme bei der Umsetzung von einer Kontaktverwaltung. Datenbankprogrammierung 7
S Das printen der Ausgabe des Oracle-SQL-Statements in der Java-Eclipse-Konsole funktioniert nicht Datenbankprogrammierung 6
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
Zrebna Noobfrage: Konvertierung von SQL-Datentyp 'timestamp with time zone' in Java-Datentyp Datenbankprogrammierung 3
Zrebna Lediglich interne DB-Verbindungen (Connections) auslesen - mittels Java Datenbankprogrammierung 4
berserkerdq2 Was genau muss ich bei date eingeben, wenn ich in Java eine Spalte definiere, die date ist? Datenbankprogrammierung 1
berserkerdq2 Was kann passieren, wenn ich in java einstelle, dass der Fremdschüssel ein Attribut ist, welches selber kein Primärschlüssel ist? Datenbankprogrammierung 4
berserkerdq2 Foreign key einstellen java Datenbankprogrammierung 4
nikgo Java SQL Ausgabe in Liste o.ä. abspeichern um mit dem Ergbnis "zu arbeiten"? Datenbankprogrammierung 5
S Datenbankprogrammierung in Java unter NetBeans 12 funktioniert nicht! Datenbankprogrammierung 1
Beginner22 Zugriff auf Datenbank aus Java über mariadb Datenbankprogrammierung 3
S ODBC Treiber in Java Editor einbinden Datenbankprogrammierung 3
H Oracle Resize eines Images in Java und Rückgabe des Image als BLOB an die Oracle Datebank Datenbankprogrammierung 14
H Java Class zum komprimieren von Jpeg-Images zum Einbinden in Oracle DB - Bild als blob (in und out) Datenbankprogrammierung 23
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
D Daten aus der Firebase-Echtzeitdatenbank abfragen und in Variablen speichern (JAVA) Datenbankprogrammierung 0
Slaylen Java List Suchen mit eigenem Generischen Datentyp Datenbankprogrammierung 10
N java sql abfrage bestimmer Datumszeitraum Datenbankprogrammierung 9
D SQL Server Android App: 'int java.lang.String.length()' on a null object reference Datenbankprogrammierung 15
P USER Management in SQL übergreifend auf JAVA Programm Datenbankprogrammierung 1
H MySQL Verbindung Datenbank und Eclipse (Java) Datenbankprogrammierung 5
N Java Abfrage über GUI, Daten hinzufügen Datenbankprogrammierung 54
N Java, sql, jar, JDBC-Treiber in Classpath Datenbankprogrammierung 8
N java SQL JAR - Probleme Datenbankprogrammierung 18
N SQL Datenbank Spalte in Java Array Datenbankprogrammierung 2
N SQL-Statement Java Variable in SQL DB einfügen Datenbankprogrammierung 1
S Verbindung von einer Excel Datei zu Java Datenbankprogrammierung 2
H suche eine Login system Bibliothek für Java Datenbankprogrammierung 5
T Java Spiel Daten speichern Datenbankprogrammierung 1
C Java MySQL check if value exists in database Datenbankprogrammierung 2
N Sqlite DB mit Java wird auf Linuxsystem nicht gefunden Datenbankprogrammierung 9
L Mybatis Datenbankabfragen in Java Datenbankprogrammierung 1
H MariaDB-Zugriff mittels Java SE Datenbankprogrammierung 3
J Java fügt Datensätze ein aber diese werden nicht richtig abgefragt Datenbankprogrammierung 3
S Datenbank MySQL und Java Datenbankprogrammierung 8
S Beispiel-Blockchain + GUI mit Java erstellen Datenbankprogrammierung 0
P Adressadministration mit Java und mySQL Datenbankprogrammierung 14
Trèfle SQLite SQL-Java Änderungen ausgeben Datenbankprogrammierung 1
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
A MySQL Select und Insert in Java Datenbankprogrammierung 15
C Derby/JavaDB Auf Variable aus Link in java server page zugreifen Datenbankprogrammierung 4
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
F MySQL Einfügen von Datensätzen über Java Datenbankprogrammierung 8
B CSV in Java einbinden und Rechnung Datenbankprogrammierung 7
L Speicherverbrauch Java Anwendung mit einer Datenbankanbindung Datenbankprogrammierung 19
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
L Java- Zähle alle Werte aus der Tabelle von aktiver Zelle Datenbankprogrammierung 12
S Datenbank/Java true/false Datenbankprogrammierung 8
S Java und SQL-Befehle Datenbankprogrammierung 6
L INSERT INTO Befehl in Java Datenbankprogrammierung 8
L Datenbankprogrammierung mit Java und phpMyAdmin Datenbankprogrammierung 4
Korvinus Java mit Cassandra verbinden Datenbankprogrammierung 18
M SQL-Statement SQL mit Java, Update Fehler Datenbankprogrammierung 1
D Installation von MariaDB in java und eclipse Datenbankprogrammierung 2
H Datenbank Export mit Java Datenbankprogrammierung 3
I MariaDB-Verbindung in JAVA Datenbankprogrammierung 11
L Oracle Datenbank über Java aufrufen Datenbankprogrammierung 29
W Daten in Java intern abfragen Datenbankprogrammierung 1
W MySQL Ausgabe von Datenbank in Java-App Datenbankprogrammierung 6
D Java Datenbanken Datenbankprogrammierung 1
Y H2 H2 foreign key in Spark Java ausgeben Datenbankprogrammierung 1
J Java Eclipse Hilfe beim Programmieren Datenbankprogrammierung 7
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
R Java-Befehle/Operatoren für copy&paste Datenbankprogrammierung 2
C Mit asm laufende Java Anwendung manipulieren Datenbankprogrammierung 1
W Wie liest dieses Java-Programm der Compiler? Datenbankprogrammierung 3
K Java Datenbank auslesen Datenbankprogrammierung 8
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
K HSQLDB .sql Script Aufruf über Java Datenbankprogrammierung 7
B Java Programm und Dantebank umlagern Datenbankprogrammierung 25
B MySQL bplaced Datenbank mit Java ansprechen Datenbankprogrammierung 11
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
F Java Objekte in einer Datenbank speichern Datenbankprogrammierung 4
perlenfischer1984 Java Objecte speichern mit Hibernate ? Datenbankprogrammierung 2
O PostgreSQL Java Row Index erhalten Datenbankprogrammierung 1
dzim Cassandra Cluster DB und der Java-Treiber Datenbankprogrammierung 1
H Entity in Java implementieren Datenbankprogrammierung 13

Ähnliche Java Themen

Neue Themen


Oben