Hallo Bernhard Geyer,
Zitat von
Bernhard Geyer:
Und dein Quellcode ist ja schrecklich was die Kapslung betrifft. Du greifst von einer unabhängigen Funktion fest auf eine globale Variable (Forms3) zu. Wenn schon definiere als mindesten die Funktion als Methode von Form3 und lass in der Methode alle Form3-Angaben weg.
Da gebe ich Dir vollkommen Recht!!! Habe Teile der Procedure aus der Anwendung schnell zusammen kopiert.
Zitat von
Bernhard Geyer:
Definier Zählflüssig und deine Testumgebung?
Am Anfang hat das einfügen von ca. 500 Datensätze ca. 1sek, gedauert, jetzt nachdem ca. 0,5 Mio. Datensätze vorhanden sind dauert es ca. 25 sek.
Zitat von
Bernhard Geyer:
Hast du auch den Virenscanner für deine Firebird-
DB-Dateien ausgeschaltet?
Nein, hat der Virenscanner denn mit zunehmenden Anzahl an Datensätze so einen großen Einfluss?
Zitat von
Bernhard Geyer:
Wie schaut es mit der Tabellendefinition (Indize, ...) aus?
SQL-Code:
ET
SQL DIALECT 3;
SET NAMES NONE;
SET CLIENTLIB '
C:\Programme\Firebird\Firebird_2_0\bin\fbclient.dll';
/******************************************************************************/
/**** Domains ****/
/******************************************************************************/
CREATE DOMAIN DATUMZEIT
AS
TIMESTAMP;
CREATE DOMAIN MSID
AS
VARCHAR(5)
CHARACTER SET WIN1252
NOT NULL;
CREATE DOMAIN MSINCID
AS
INTEGER
CHECK (VALUE>0);
CREATE DOMAIN MW
AS
DOUBLE PRECISION;
/******************************************************************************/
/**** Generators ****/
/******************************************************************************/
CREATE GENERATOR MW_ID_GEN;
/******************************************************************************/
/**** Tables ****/
/******************************************************************************/
CREATE TABLE MW_TABELLE (
MW_ID MSINCID
NOT NULL,
MW_MSID MSID
NOT NULL,
MW_DATUMUHRZEIT DATUMZEIT
DEFAULT '
NOW'
NOT NULL,
MW_MW MW
NOT NULL
);
/******************************************************************************/
/**** Primary Keys ****/
/******************************************************************************/
ALTER TABLE MW_TABELLE
ADD CONSTRAINT PK_MW_TABELLE
PRIMARY KEY (MW_ID);
/******************************************************************************/
/**** Indices ****/
/******************************************************************************/
CREATE INDEX MW_TABELLE_DATUM
ON MW_TABELLE (MW_DATUMUHRZEIT);
CREATE INDEX MW_TABELLE_MSID
ON MW_TABELLE (MW_MSID);
/******************************************************************************/
/**** Triggers ****/
/******************************************************************************/
SET TERM ^ ;
/******************************************************************************/
/**** Triggers for tables ****/
/******************************************************************************/
/* Trigger: SET_MW_ID */
CREATE TRIGGER SET_MW_ID
FOR MW_TABELLE
ACTIVE BEFORE
INSERT POSITION 0
AS
begin
if (new.mw_id
is null)
then
new.mw_id = gen_id(mw_id_gen, 1);
end
^
SET TERM ; ^
/******************************************************************************/
/**** Descriptions ****/
/******************************************************************************/
DESCRIBE DOMAIN DATUMZEIT
'
Aktuelles Datum und Uhrzeit';
DESCRIBE DOMAIN MSID
'
Messstellen ID besteht aus der 3
Stelligen MANr und aus der 2 Stelligen
MSNr.';
DESCRIBE DOMAIN MSINCID
'
CHECK (VALUE>0)';
DESCRIBE DOMAIN MW
'
Gemessener Messwert';
/* Fields descriptions */
DESCRIBE FIELD MW_ID
TABLE MW_TABELLE
'
CHECK (VALUE>0)';
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.