Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Page Size (https://www.delphipraxis.net/147623-page-size.html)

Dumpfbacke 12. Feb 2010 14:48

Datenbank: Interbase • Version: 6.01 • Zugriff über: IBX

Page Size
 
Hallo,
wenn ich eine Datenbank mittes der IBConsole vom Backup zurückspiele kann ich ja die Page Size angeben. Kann mir jemand hier genau sagen welche Auswerkung hier eintreten kann ?

Wenn ich die Page Size größer oder kleiner nache ?

Cu Dumpfbacke

hoika 12. Feb 2010 14:54

Re: Page Size
 
Hallo,

höere Page Size veringert die Index-Tiefe (es passen mehr Daten auf eine Page).
Da Pages aber nicht Tabellen-übergreifend benutzt werden,
wird die DB bei größerer PageSize etwas größer.

Ausserdem wird die DB-Cache-Größe in Pages-Seiten angegeben.

Beim Classic Server könnte eine Verdoppeln der PageSize
also zu größerem Speicher-Verbrauch führen,
beim SuperServer auch, jaja, ich meinte aber auch in Abhängigkeit der Anzahl der Verbindungen.

Einfach mal Ausprobieren und Geschwindigkeits-Tests machen.

Die Page-Size sollte aber mindestens 4 kB sein.


Oh: Interbase. Geh mal lieber auf mind. FB1.5 (CPU Affinity).


Heiko

Dumpfbacke 12. Feb 2010 18:39

Re: Page Size
 
Hallo Heiko

Zitat:

Zitat von hoika

Die Page-Size sollte aber mindestens 4 kB sein.

Danke. So etwas dachte ich mir schon, denn auf dem Server läuft das ganze langsamer als auf dem Entwicklungsrechner. Ich werde mal bei gelegenheit ein Backup / Restore machen

Zitat:

Zitat von hoika
Oh: Interbase. Geh mal lieber auf mind. FB1.5 (CPU Affinity).


Heiko

Ich das ist mein größtes Problem. Dazu muß ich jedoch die Selects anpassen und im lauf der Jahre hat sich einiges an Programmen angesammelt. Mein "Hauptprogramm" hat nun schon > 10 MB und dort sind einige Selects vorhanden. Das ganze hilft nichts ich muß es einmal ändern. Denn alleine das Starten der Anwendung dauert schon ca. 10 Sekunden da der Win 2003 Server zuerst ja die DB kopiert da Sie ja die Endung GDB hat.

Dumpfbacke

hoika 13. Feb 2010 06:57

Re: Page Size
 
Hallo,

Zitat:

Danke. So etwas dachte ich mir schon, denn auf dem Server läuft das ganze langsamer als auf dem Entwicklungsrechner. Ich werde mal bei gelegenheit ein Backup / Restore machen
Meinst du, dass das Programm schneller ist, wenn der SQL-Server auf einem anderen Rechner ist,
als auf dem eigenen (Entwicklungsrechner).
Dann hast du einen Standard-Fehler bei der DB-Entwicklung gemacht.

Eine Query hat Execute- und Fetch-Time (Prepare lasse ich mal weg).
Man darf das Fetch (Holen der Daten übers Netz) nicht ausser Acht lassen.
Deshalb ja auch der Satz Select * vermeiden.

Du musst also immer mit 2 Rechner entwickeln, Delphi-Rechner -> SQL-Server.
Zur Not reicht dazu auch eine virtuelle Maschine mit einem alten w2k-Proff.

Mindestens sollte man aber localhost:c:\data.FDB statt nur c:\data.FDB im Konnektion-String haben.


Zitat:

Dazu muß ich jedoch die Selects anpassen
Dein Problem beim Select sind die umbiguous joins hoffe das ist jetzt richtig geschrieben ;)
Also so was wie

Select Name From Table1
Join Table2 On XXX

und das Feld Name gäbe es bei beiden Tabellen.

<Ironie>
Aber da alle deine Abfragen durch Unit-Tests abgesichert sind,
ist das doch kein Problem ...
</Ironie>

Zitat:

Endung GDB hat
Warum benennst du die Datei nicht einfach in FDB um?

Ob es wirklich an der Endung liegt,
solltest du eh ausprobieren.

Ein 2003er Server ist leicht per VMWare aufgesetzt.


Heiko

Dumpfbacke 13. Feb 2010 15:18

Re: Page Size
 
Hallo,
Zitat:

Zitat von hoika

Meinst du, dass das Programm schneller ist, wenn der SQL-Server auf einem anderen Rechner ist,
als auf dem eigenen (Entwicklungsrechner).
Dann hast du einen Standard-Fehler bei der DB-Entwicklung gemacht.

Eine Query hat Execute- und Fetch-Time (Prepare lasse ich mal weg).
Man darf das Fetch (Holen der Daten übers Netz) nicht ausser Acht lassen.
Deshalb ja auch der Satz Select * vermeiden.

Du musst also immer mit 2 Rechner entwickeln, Delphi-Rechner -> SQL-Server.
Zur Not reicht dazu auch eine virtuelle Maschine mit einem alten w2k-Proff.

Mindestens sollte man aber localhost:c:\data.FDB statt nur c:\data.FDB im Konnektion-String haben.

Ja das ist mir schon bewust. Ich beschreibe es mal anders. Ich habe dauf dem Entwicklungsrechner die Datenbak und das Programm laufen. Das selbe ist auch auf dem Win 2003 Server so, das Programm und die DB liegt auf dem selben Rechner. Auf dem Server ist es halt nur langsamer. Ich vermute mal das es nicht nur am Prozessor liegt. Entwicklungsrechner Dual Core ca 1 Jahr alt. Server 2 Stück Xeon (Ja der Server unterstützt nur ein Kern von den beiden) ca. 2,5 Jahre alt.

Zitat:

Dazu muß ich jedoch die Selects anpassen
Dein Problem beim Select sind die umbiguous joins hoffe das ist jetzt richtig geschrieben ;)
Also so was wie

Select Name From Table1
Join Table2 On XXX

und das Feld Name gäbe es bei beiden Tabellen.

<Ironie>
Aber da alle deine Abfragen durch Unit-Tests abgesichert sind,
ist das doch kein Problem ...
</Ironie>
Ja das ändern ist nicht das Problem. Es sind leider einige Programme mit einigen Select und immer wenn ich mal ran gehen möchte kommt ein wichtigs Projekt welches sofort umgesetzt werden muß... ;-(

Zitat:

Warum benennst du die Datei nicht einfach in FDB um?
Ich kann die DB natürlich umbenennen, jedoch die "Sicherheitsdatei" von Ihnerbase selbst kann man ja nich ändern

Zitat:

Ob es wirklich an der Endung liegt,
solltest du eh ausprobieren.
Habe ich schon und es ist ein bekanntes Problem

Dumpfbacke

hoika 13. Feb 2010 17:06

Re: Page Size
 
Hallo,

Zitat:

"Sicherheitsdatei"
Die isc4.gdb ist aber nur ein paar KB gross.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz