Delphi-PRAXiS
Seite 2 von 7     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Wie bekomme ich einen performanten Firebird? (https://www.delphipraxis.net/180125-wie-bekomme-ich-einen-performanten-firebird.html)

HHennig 24. Apr 2014 17:15

AW: Wie bekomme ich einen performanten Firebird?
 
Zitat:

Zitat von mkinzler (Beitrag 1256808)
Diese würde ich temporär deaktivieren

SQL-Code:
alter index <Indexname> inactive;
und am Ende neu berechnen lassen.

SQL-Code:
SET statistics INDEX <Indexname>;


Ist richtig, um es aber explizit darzustellen: nach
SQL-Code:
alter index <Indexname> inactive;
und Import zunächst
SQL-Code:
alter index <Indexname> active;
und erst dann
SQL-Code:
SET statistics INDEX <Indexname>;

mkinzler 24. Apr 2014 17:18

AW: Wie bekomme ich einen performanten Firebird?
 
Stimmt. Davon bin ich implizit ausgegangen ohne es explizit zu schreiben.

Perlsau 24. Apr 2014 17:19

AW: Wie bekomme ich einen performanten Firebird?
 
Zitat:

Zitat von Union (Beitrag 1256800)
@perlsau: das insert script habe ich mit einem selbsterstellten tool aus einer Produktions-DB eines anderen DB-Servers generiert.

Firebird generiert nur alle 1000 Datensätze ein COMMIT WORK;

Ich würde zusätzlich zu den anderen Tipps auch danach schauen, ob man in deinem Tool einstellen kann, wie häufig ein Commit ausgeführt wird. Keine Ahnung, wieviele Datensätze Firebird ohne Commit speichern kann, aber ich denke, es sind mehr als 1000.

mkinzler 24. Apr 2014 17:21

AW: Wie bekomme ich einen performanten Firebird?
 
Zitat:

Keine Ahnung, wieviele Datensätze Firebird ohne Commit speichern kann, aber ich denke, es sind mehr als 1000.
Da dürfte es keine Beschränkung geben.

Wie führst Du das Skript aus? Eventuell funkrt Dir da doch noch ein AutoCommit dazwischen.

Union 24. Apr 2014 17:27

AW: Wie bekomme ich einen performanten Firebird?
 
Es scheint an den "mehrfelder" Indizes zu liegen. Ich habe jetzt (nach 2:45h für 50000 Records) den Import für die nächste Test-Tabelle gestartet. Für diese sind nur einfache Indizes definiert. Dort hat er den Import von 110000 Sätzen nach 6 min. Auch noch nicht berauschend, aber es geht.

Die scripts führe ich mit
Code:
input
in der iSQL-Kommandozeile aus.

gstat sagt folgendes:
Database header page information:
Zitat:

Flags 0
Checksum 12345
Generation 5086
Page size 4096
ODS version 11.2
Oldest transaction 4989
Oldest active 4990
Oldest snapshot 4990
Next transaction 4992
Bumped transaction 1
Sequence number 0
Next attachment ID 92
Implementation ID 26
Shadow count 0
Page buffers 0
Next header page 0
Database dialect 3
Creation date Apr 24, 2014 11:11:12
Attributes force write

Perlsau 24. Apr 2014 17:27

AW: Wie bekomme ich einen performanten Firebird?
 
Zitat:

Zitat von mkinzler (Beitrag 1256814)
Wie führst Du das Skript aus? Eventuell funkrt Dir da doch noch ein AutoCommit dazwischen.

Wie oben angegeben: Im Scripteditor (Ctrl-F12) laden und ausführen oder gleich von Platte ausführen, was etwas langsamer ist, aber bei riesigen Scripts unumgänglich, wenn man nicht genug Arbeitsspeicher hat. Keinesfalls im SQL-Editor laden, das ist viel langsamer. Von irgendwelchen AutoCommits weiß ich nichts.

Wenn ich wüßte, wie man via Server Manager ein Insert-Script einer MSSQL-Tabelle generiert, würde ich mal testweise meine riesige 900000 DS große Ortsdatenbank exportieren und in Firebird einlesen, um zu sehen, wie lange das dauert.

Union 24. Apr 2014 17:32

AW: Wie bekomme ich einen performanten Firebird?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Perlsau (Beitrag 1256816)
Wenn ich wüßte, wie man via Server Manager ein Insert-Script einer MSSQL-Tabelle generiert, würde ich mal testweise meine riesige 900000 DS große Ortsdatenbank exportieren und in Firebird einlesen, um zu sehen, wie lange das dauert.

Siehe Bild.

Perlsau 24. Apr 2014 17:36

AW: Wie bekomme ich einen performanten Firebird?
 
Zitat:

Zitat von Union (Beitrag 1256817)
Zitat:

Zitat von Perlsau (Beitrag 1256816)
Wenn ich wüßte, wie man via Server Manager ein Insert-Script einer MSSQL-Tabelle generiert, würde ich mal testweise meine riesige 900000 DS große Ortsdatenbank exportieren und in Firebird einlesen, um zu sehen, wie lange das dauert.

Siehe Bild.

Das kenne ich selbstverständlich bereits, aber das erzeugt mir kein Insert-Script aller 900000 DS, sondern lediglich das:
Code:
USE [GeoNames]
GO

INSERT INTO [dbo].[Plaetze]
           ([ISO_Code]
           ,[Postal_Code]
           ,[Place_Name]
           ,[State]
           ,[State_Code]
           ,[Provinz]
           ,[Provinz_Code]
           ,[Kommune]
           ,[Kommune_Code]
           ,[Latitude]
           ,[Longitude]
           ,[Genau])
     VALUES
           (<ISO_Code, char(2),>
           ,<Postal_Code, nvarchar(50),>
           ,<Place_Name, nvarchar(180),>
           ,<State, nvarchar(100),>
           ,<State_Code, nvarchar(50),>
           ,<Provinz, nvarchar(100),>
           ,<Provinz_Code, nvarchar(50),>
           ,<Kommune, nvarchar(100),>
           ,<Kommune_Code, nvarchar(50),>
           ,<Latitude, numeric(7,4),>
           ,<Longitude, numeric(7,4),>
           ,<Genau, tinyint,>)
GO
Hab nur gerade keine Lust, ein Programm zu schreiben, das mir das Insert-Script generiert, ich schau mir nämlich nebenher einen Film an und gehe danach zu Bett, weil ich eigentlich schon saumäßig müde bin. Für das Anlegen einer Tabelle in FB würd's aber grad noch reichen :)

Dejan Vu 24. Apr 2014 17:40

AW: Wie bekomme ich einen performanten Firebird?
 
Zitat:

Zitat von Perlsau (Beitrag 1256816)
Wenn ich wüßte, wie man via Server Manager ein Insert-Script einer MSSQL-Tabelle generiert, würde ich mal testweise meine riesige 900000 DS große Ortsdatenbank exportieren und in Firebird einlesen, um zu sehen, wie lange das dauert.

Gar nicht. Das geht mit dem Import/Export-Wizzard und dann wird das per ODBC/OLE (je nachdem, was man auswählt) mehr oder minder performant (meist mehr) durchgezogen.

Perlsau 24. Apr 2014 17:42

AW: Wie bekomme ich einen performanten Firebird?
 
Genau das hatte ich befürchtet: Da hat man nun ein gewaltig aufgeblähtes Werkzeug und kann nicht mal Insert-Scripts erzeugen. Okay, vielleicht mach ich das morgen mal mit einer Stringliste. Bis dann ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:41 Uhr.
Seite 2 von 7     12 34     Letzte »    

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