6. Juni 2010 18:28
6. Juni 2010 19:45
7. Juni 2010 11:10
7. Juni 2010 11:52
martinst hat geschrieben:In meinem Fall sind das also die BLOBS, die das Problem verursachen. In der Tabelle ist ja nur ein Datensatz.
Muss mir mal überlegen, wie ich das anders aufbauen könnte.
Setup.GET;
Setup.CALCFIELD(MeinBlob1);
// In irgendeiner PictureBox: SourceExpr: Setup.MeinBlob1
Setup.GET;
CLEAR(BlobRec);
IF Setup.MeinBlobCode1 <> '' THEN
IF BlobRec.GET(Setup.MeinBlobCode1) THEN
BlobRec.CALCFIELD(BlobFeld);
// In irgendeiner PictureBox: SourceExpr: BlobRec.BlobFeld
7. Juni 2010 12:07
7. Juni 2010 12:31
martinst hat geschrieben:Hallo Timo
Werde ich wohl machen müssen.
Als die Tabelle seinerzeit entwickelt worden ist, hatten wir es ausschliesslich mit NATIV-DB's zu tun. Da war das eingentlich nie ein Problem.
Aber bisher ist dies der einzige Nachteil den SQL mit sich gebracht hat.
Ansonsten ist die Performance wirklich sehr beindruckend.
Gruss
7. Juni 2010 12:44
Lord_British hat geschrieben:Soviel ich weiß, kann der SQL-Server auch keine SIFT-Indizes mehr?
7. Juni 2010 12:58
Timo Lässer hat geschrieben:martinst hat geschrieben:In meinem Fall sind das also die BLOBS, die das Problem verursachen. In der Tabelle ist ja nur ein Datensatz.
Muss mir mal überlegen, wie ich das anders aufbauen könnte.
Eine denkbare Lösung wäre, die BLOBs in eine eigenständige Tabelle zu packen, welche ausschließlich BLOBs verwaltet.
Tabellenstruktur könnte sein:
- Code[10] (Primärschlüssel)
- BLOB
- Text[250] (für Dateiname)
- Text[30] (für kurze Anmerkung)
In der betroffenen Setup-Tabelle würde man dann anstelle der BLOB-Felder nur noch die Referenz zu dem Eintrag in der "BLOB-Tabelle" verwalten.
Somit liest der SQL-Server keine BLOB-Felder mehr, nur weil er den Datensatz in der Einrichtungstabelle benötigt.
...
Dies hätte sogar den Vorteil, dass ein und dasselbe Bild mehrmals in der Datenbank referenziert werden kann, ohne es doppelt abzuspeichern.
7. Juni 2010 13:14
Mein Gedanke war folgender:
"weniger GET und nur Calcfield, wenn ichs brauche"
Ist das den total in die Falsche Richtung gedacht?
7. Juni 2010 14:00
Timo Lässer hat geschrieben:Lord_British hat geschrieben:Soviel ich weiß, kann der SQL-Server auch keine SIFT-Indizes mehr?
Können schon, nur verwendet NAV diese Indizes ab 5.00 SP1 nicht mehr.
Stattdessen setzt man auf Indexed Views, welche zu demselben Ergebnis führen, jedoch performanter sind.
(Wobei ich mich ganz schwach daran erinnere, dass J. Stryk diese Aussage auch schon relativiert (jedoch nicht explizit widerlegt) hat.)
7. Juni 2010 14:03
MatthiasKönig hat geschrieben:Hi,
ich habe genau ein solches "Problem" ebenfalls gehabt und habe mich fuer EINE Tabelle entschieden in der X BlobFelder existieren.
Mein Gedanke war folgender:
"weniger GET und nur Calcfield, wenn ichs brauche"
Ist das den total in die Falsche Richtung gedacht?
7. Juni 2010 14:10
Timo Lässer hat geschrieben:MatthiasKönig hat geschrieben:Hi,
ich habe genau ein solches "Problem" ebenfalls gehabt und habe mich fuer EINE Tabelle entschieden in der X BlobFelder existieren.
Mein Gedanke war folgender:
"weniger GET und nur Calcfield, wenn ichs brauche"
Ist das den total in die Falsche Richtung gedacht?
Ja, denn dann muss der SQL-Server immer alle BLOBs lesen, egal welches Bild du benötigst.
(NAV sendet ja - vereinfacht gesprochen - immer einen SELECT * FROM Table...)
Verteilst du die BLOBs auf mehrere Datensätze (also pro Datensatz immer nur ein BLOB-Feld), so braucht der SQL-Server die anderen BLOB-Felder nicht lesen.
7. Juni 2010 14:52
MatthiasKönig hat geschrieben:Timo Lässer hat geschrieben:MatthiasKönig hat geschrieben:Hi,
ich habe genau ein solches "Problem" ebenfalls gehabt und habe mich fuer EINE Tabelle entschieden in der X BlobFelder existieren.
Mein Gedanke war folgender:
"weniger GET und nur Calcfield, wenn ichs brauche"
Ist das den total in die Falsche Richtung gedacht?
Ja, denn dann muss der SQL-Server immer alle BLOBs lesen, egal welches Bild du benötigst.
(NAV sendet ja - vereinfacht gesprochen - immer einen SELECT * FROM Table...)
Verteilst du die BLOBs auf mehrere Datensätze (also pro Datensatz immer nur ein BLOB-Feld), so braucht der SQL-Server die anderen BLOB-Felder nicht lesen.
danke!, dann werd ichs wohl nochmal umstellen muessen.
7. Juni 2010 15:48
9. Juni 2010 10:04
9. Juni 2010 17:13