vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ADO.NET / Datenbanken
Große DB Tabellen und LazyLoading mit O/R Mapper oder Eigenbau? 
Autor: C.Schmitt
Datum: 26.12.11 16:42

Hallo liebe Community,

Ich beschäftige mich seit kurzem damit verschiedene Projekte von VB6 nach VB.net oder C# zu portieren.

Jetzt ist es so das schon eine bestehende Datenbank vorhanden ist, und sich die Struktur auch nicht ändern lässt. Mein Problem ist es nun, das da teilweise Tabellen sind mit 200+ Spalten. In einer Tabelle sind sogar komplette E-Mails mit und Ohne HTML-Text hinterlegt.

Jetzt ist es so, das eines dieser Projekte ein Mailprogramm ist. Da es sein kann das bestimmte User einen vollen Posteingang haben (500+ Mails) aber nur 2-4GB RAM, führt dies nun zu einem Problem.

Zur Zeit arbeite ich mit Fluent Hibernate was auch sehr schön funktioniert. Wenn ich nun aber auf diese große Tabelle zugreife und einen Posteingang mit 500 Objekten drin habe, so sind gleich mal 1,5-2GB RAM weg und es dauert natürlich auch recht lange diese zu laden.

Nun dachte ich mir das es ja wohl irgendwie möglich sein müsste, einzelne Properties aus dem Mapping via LazyLoading zu laden. Dies geht soweit ich gesehen hab nur bei Fremdschlüsseln sprich andere Entitäten in einer Entität.

Wenn ich nun in NHibernate aber mein Mapping komplett gemacht habe, sprich alle Spalten der Tabelle abgebildet habe, so kann ich noch nicht einmal "SELECT Feld1, Feld2 FROM bla" machen, da sich NHibernate dann beschwert, das es mehr Properties gibt als abgefragt werden.

Ich dachte nun daran was eigenes zu Programmieren das JEDE Property erst dann aus der DB lädt, wenn Sie angefordert wird. Ich weiß aber nicht ob das gut ist wenn er jedesmal für jede Propertie eine Verbindung aufbaut. Zumal dies wahrscheinlich auch etwas länger dauern dürfte?!

Hat schon jemand Erfahrungen gemacht mit großen Tabellen und einem O/R Mapper?

Also die Grundproblematik ist das sehr große Tabellen existieren, und diese alle in Objekte müssen was aber sehr Speicherlastig wird und auch lange dauert. Und die Kundenrechner nicht immer Powermaschienen sind (max. 2-4GB RAM).

Ich würde mich über Lösungsvorschläge freuen wie ich das ganze Speicher schonend und schnell hinbekommen würde. Möglichst OHNE die Datenbankstruktur zu ändern!

Noch ein Fröhliches und gesegnetes Weihnachtsfest,

Chris

Beitrag wurde zuletzt am 26.12.11 um 16:43:42 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Große DB Tabellen und LazyLoading mit O/R Mapper oder Eigenb...1.485C.Schmitt26.12.11 16:42
Re: Große DB Tabellen und LazyLoading mit O/R Mapper oder Ei...955ModeratorFZelle27.12.11 12:30
Re: Große DB Tabellen und LazyLoading mit O/R Mapper oder Ei...960ModeratorRalfE27.12.11 12:36
Re: Große DB Tabellen und LazyLoading mit O/R Mapper oder Ei...910C.Schmitt27.12.11 18:01
Re: Große DB Tabellen und LazyLoading mit O/R Mapper oder Ei...837Micke29.12.11 16:10
Re: Große DB Tabellen und LazyLoading mit O/R Mapper oder Ei...854C.Schmitt29.12.11 18:12
Re: Große DB Tabellen und LazyLoading mit O/R Mapper oder Ei...830ModeratorRalfE30.12.11 22:28

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel