AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Interbase

Ein Thema von Fritzew · begonnen am 29. Mai 2017 · letzter Beitrag vom 1. Aug 2017
Antwort Antwort
Seite 2 von 4     12 34   
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.652 Beiträge
 
Delphi 7 Personal
 
#11

AW: Interbase

  Alt 3. Jun 2017, 00:18
Tabelle1: id,Name
Tabelle2: id,Name

Select Name
From Tabelle1
Join Tabelle2 On Tabelle1.Id=Tabelle2.Id
Hmm, Bug oder Feature?
Ich hätte ein ungutes Gefühl wenn Meine DB so etwas problemlos schluckt.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
7.753 Beiträge
 
Delphi XE4 Professional
 
#12

AW: Interbase

  Alt 3. Jun 2017, 16:38
Hallo,
IB6 hatte damit kein Problem ...
Heiko
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
2.867 Beiträge
 
Delphi 2010 Enterprise
 
#13

AW: Interbase

  Alt 3. Jun 2017, 18:40
Das ist ja das Problem, wenn eine DB mit sowas kein Problem hat.
Denn es ist schlicht nicht eindeutig.

Den Vogel schießt da ja mysql ab. Zum Glück gibt es hier seit einigen Versionen die Strict Einstellungen für den ganzen Schrott, den mysql sich in jungen Jahren da geleistet hat. Damit hat man dann die Chance, sein System wasserdicht zu machen.

Natürlich ist es im Nachhinein eine Menge Arbeit und Spaß macht es auch keinen. Aber noch weniger Spaß macht sicher die Suche nach Fehlern, die dadurch entstehen. Unstimmigkeiten in Reports, mal so mal so Ergebnisse, mir graut.

Nach wie vor ein Grund für mich, mysql nur zum Spielen anzufassen.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
463 Beiträge
 
FreePascal / Lazarus
 
#14

AW: Interbase

  Alt 5. Jun 2017, 20:10
Nun denn, dann einfach mal für jeden reproduzierbare Resultate (erst mal single
threaded, aber schon markant):

In jeder IBExpert Version (auch in der Personal Edition) ist im Demo DB
Pfad ein Script, das so auch mit Interbase funktioniert. Ob man das über
IBExpert oder isql oder sonstwie ausführt, macht keinen Unterschied.

Beide Datenbanken werden mit 16k pagesize angelegt (8k machte bei beiden
keinen Vorteil).

Wenn die DB fertig ist, dann wird über IBExpert - Services - Database Properties
oder gfix der cache buffer auf 5000 gesetzt, so das der Cache ausreichend groß sein
sollte (was die geringen Zahlen als Ergebnisse von reads und writes auch
so bestätigen). Anschliessend disconnect und reconnect damit die buffers
gesetzt sind.

In beiden Datenbanken wird der jeweilige Client für 32 Bit eingesetzt
(fbclient aus firebird 3.0.2 und gds32.dll aus dem installierten Paket).
Der Test lief mit IBExpert, lässt sich aber auch mit der jeweiligen isql
Version ausführen

Beide DB Server sind 64 Bit Version auf identischer Hardware/Windows 10 Version
(firebird Version 3.0.2 bzw. Interbase 2017 Developer Edition 13.0.0.129)

Damit der Test einfach reproduzierbar ist, wird nun zunächst einfach
mal jeweils 3 mal die SP initall gestartet mit dem parameter 10000
und danach jeweils disconnect/connect gemacht (weil beim ersten durchlauf
noch keine Daten gelöscht werden müssen).

Wenn das durch ist, dann startet man nun initall mit 10000 auf beiden
Datenbanken, später dann noch mal 3 mal zum Auwärmen mit 100000
10000 erzeugt ca. 910000 individuelle insert/update/delete/select statements
100000 erzeugt ca. 9,1 Mio individuelle insert/update/delete/select statements


Ergebnisse

Interbase 10000 9,36 Sekunden
Firebird 10000 4,11 Sekunden

Interbase 100000 160,33 Sekunden
Firebird 100000 57,63 Sekunden

(ohne Statistik, aber mit 1 mio als param wird die db ca 1.3 GB groß)
Interbase 1000000 37 Minuten
Firebird 1000000 12 Minuten


Unter ".. kann da FB noch mithalten" versteh ich da was völlig anderes ....

Interbase braucht bei den meisten mir bekannten mehr oder weniger komplexeren
Operationen 2-10 mal länger als Firebird (und ich rede da auch multithreaded nicht
von der begrenzt vorteilhaften classic/superclassic version auf lahmen Festplatten
und wir haben Firebird verschiedensten Hardware- und Userzahlkonfigurationen da
im Einsatz ).

ich würde mich freuen, wenn du das mit reproduzierbaren Beispielen widerlegen
könntest, die nicht nur auf Inkompatibilitäten basieren. Zeig mir irgendwas,
das Interbase schneller kann.

Ich glaub auch keineswegs, das das irgendwie an der Developer Edition liegen sollte,
falls das das Argument wäre, weil gleichartige Ergebnisse auch bei Kunden mit
lizensierten Interbase Versionen mit reichlich cores identische Verhältnisse
ergab.



Query Statistiken aus IBExpert (die leichten Abweichungen der Operation liegen
an der Random Funktion)

Code:

Anfang Interbase 2017

10000

35169 record(s) was(were) updated in INVENTORY
10000 record(s) was(were) updated in ORDERS

10000 record(s) was(were) deleted from CUSTOMER
10000 record(s) was(were) deleted from INVENTORY
10000 record(s) was(were) deleted from ORDERS
10000 record(s) was(were) deleted from PRODUCT
34993 record(s) was(were) deleted from ORDERLINE

10000 record(s) was(were) inserted into CUSTOMER
10000 record(s) was(were) inserted into INVENTORY
10000 record(s) was(were) inserted into ORDERS
10000 record(s) was(were) inserted into PRODUCT
35169 record(s) was(were) inserted into ORDERLINE

------ Performance info ------
Prepare time = 0ms
Execute time = 9s 359ms
Current memory = 32.743.344
Max memory = 35.797.280
Memory buffers = 1.783
Reads from disk to cache = 790
Writes from cache to disk = 51
Fetches from cache = 4.851.962


100000


349393 record(s) was(were) updated in INVENTORY
100000 record(s) was(were) updated in ORDERS

100000 record(s) was(were) deleted from CUSTOMER
100000 record(s) was(were) deleted from INVENTORY
100000 record(s) was(were) deleted from ORDERS
100000 record(s) was(were) deleted from PRODUCT
350371 record(s) was(were) deleted from ORDERLINE

100000 record(s) was(were) inserted into CUSTOMER
100000 record(s) was(were) inserted into INVENTORY
100000 record(s) was(were) inserted into ORDERS
100000 record(s) was(were) inserted into PRODUCT
349393 record(s) was(were) inserted into ORDERLINE

------ Performance info ------
Prepare time = 0ms
Execute time = 2m 40s 328ms
Current memory = 89.204.944
Max memory = 89.225.424
Memory buffers = 5.000
Reads from disk to cache = 40.517
Writes from cache to disk = 3.947
Fetches from cache = 49.142.098


Ende Interbase 2017



Anfang Firebird 3.0.2

10000

34953 record(s) was(were) updated in INVENTORY
10000 record(s) was(were) updated in ORDERS

10000 record(s) was(were) deleted from CUSTOMER
10000 record(s) was(were) deleted from INVENTORY
35007 record(s) was(were) deleted from ORDERLINE
10000 record(s) was(were) deleted from ORDERS
10000 record(s) was(were) deleted from PRODUCT

10000 record(s) was(were) inserted into CUSTOMER
10000 record(s) was(were) inserted into INVENTORY
34953 record(s) was(were) inserted into ORDERLINE
10000 record(s) was(were) inserted into ORDERS
10000 record(s) was(were) inserted into PRODUCT

------ Performance info ------
Prepare time = 0ms
Execute time = 4s 109ms
Current memory = 88.583.408
Max memory = 89.313.520
Memory buffers = 5.000
Reads from disk to cache = 1.071
Writes from cache to disk = 18
Fetches from cache = 3.917.798


100000


350293 record(s) was(were) updated in INVENTORY
100000 record(s) was(were) updated in ORDERS

100000 record(s) was(were) deleted from CUSTOMER
100000 record(s) was(were) deleted from INVENTORY
349696 record(s) was(were) deleted from ORDERLINE
100000 record(s) was(were) deleted from ORDERS
100000 record(s) was(were) deleted from PRODUCT

100000 record(s) was(were) inserted into CUSTOMER
100000 record(s) was(were) inserted into INVENTORY
350293 record(s) was(were) inserted into ORDERLINE
100000 record(s) was(were) inserted into ORDERS
100000 record(s) was(were) inserted into PRODUCT

------ Performance info ------
Prepare time = 0ms
Execute time = 57s 625ms
Current memory = 89.840.264
Max memory = 92.460.528
Memory buffers = 5.000
Reads from disk to cache = 26.224
Writes from cache to disk = 19.499
Fetches from cache = 52.106.099

Ende Firebird 3.0.2
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat
Benutzerbild von MEissing
MEissing

Registriert seit: 19. Jan 2005
Ort: Egelsbach
1.091 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Interbase

  Alt 7. Jun 2017, 10:24
Firebird installiert (3.0.2), IBExpert installiert.
DB erzeugt..... INITALL aufgerufen:

Code:
validation error for column "CUSTOMER"."FIRSTNAME", value "*** null ***".
At procedure 'INITALL' line: 106, col: 5.
(Hat der Editor von IBExperts noch nichtmal eine Zeilennummerierung?!?!?)
Matthias Eißing
cu://Matthias.Eißing.de [Embarcadero]
Kein Support per PN
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
645 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#16

AW: Interbase

  Alt 8. Jun 2017, 16:53
Zitat:
Code:
validation error for column "CUSTOMER"."FIRSTNAME", value "*** null ***".
At procedure 'INITALL' line: 106, col: 5.
(Hat der Editor von IBExperts noch nichtmal eine Zeilennummerierung?!?!?)
Ich denke jetzt wird es unterirdisch....... (professionell ist anders)

wie wäre es mit
(Hat der Formulardesigner von Delphi nicht nicht einmal ein Undo?!?!?!?) Ist auch nicht besser oder?

Von mir aus kann der Thread geschlossen werden, bevor das hier noch ausartet.
Habe mich für Firebird entschieden, es geht um ca 70 Clients und es werden ziemlich sicher noch mehr.
Das wird für den Einsatzzweck zu teuer. Das ist aber eine Entscheidung für diesen speziellen Fall und sollte nicht als allgemeine Aussage gewertet werden!

Danke an alle die geantwortet haben.

Zitat:
Wenn du Lust auf eine gemeinsame Session mal irgendwo auf einer Konferenz hast steh ich
gerne bereit, jeder sucht sich 50% der Beispiele aus und der jeweils andere versucht
das nachzumachen.
Würde ich gerne z.B an den Foren-Tagen sehen
Fritz Westermann
  Mit Zitat antworten Zitat
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
463 Beiträge
 
FreePascal / Lazarus
 
#17

AW: Interbase

  Alt 8. Jun 2017, 20:40
Firebird installiert (3.0.2), IBExpert installiert.
DB erzeugt..... INITALL aufgerufen:

Code:
validation error for column "CUSTOMER"."FIRSTNAME", value "*** null ***".
At procedure 'INITALL' line: 106, col: 5.
(Hat der Editor von IBExperts noch nichtmal eine Zeilennummerierung?!?!?)
Doch, hat der IBExpert Editor, ist aber nicht immer sinnvoll, und man kann daher
selber entscheiden ob man das haben möchte oder nicht.

http://ibexpert.net/ibe/index.php?n=...#EditorOptions

Der Null fehler deutet darauf hin, das du keinen Parameter an die SP übergeben
hast, dann weiss die nicht, wie groß die db werden soll. Nimm zB 10000 als Anfang

Und zur Zeilennummer: Im Default arbeitet der SP Editor im Lazy mode und zeigt nur
Zeilennummern im Body an, daher würde die von FB generierte Fehlernummer woanders
hinzeigen. Um die übereinstimmen zu lassen, setze hier statt lazy den Standard mode

http://ibexpert.net/ibe/index.php?n=...2900#ProcEdOpt

Und es ist ja nun keineswegs so das Delphi schon immer Zeilennummern konnte,
zumindest bis inkl V7 war das gar nicht möglich, das nur so am Rande

Während der Forentage bin ich leider im Amerika, würde aber wenn Daniel es
technisch ermöglichen kann, gerne die Session mit Matthias auch remote machen.

Ich hab da wo ich an dem Samstag bin, sehr gutes Internet und über pcvisit können
wir problemlos auf auf den Bildschirmen zwischen Hamburg und USA für alle sichtbar
umschalten.
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
645 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#18

AW: Interbase

  Alt 8. Jun 2017, 20:43
Das fände ich super!!!!
Fritz Westermann
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.652 Beiträge
 
Delphi 7 Personal
 
#19

AW: Interbase

  Alt 8. Jun 2017, 22:53
Ich denke jetzt wird es unterirdisch....... (professionell ist anders)
Nö so schlimm ist das nicht. Stell Dir vor, ein Anfäger bekommt eine Routine in die Finger, die von sich behauptet sie läuft auf beiden Datenbanken. Der weiß doch nicht ob der eine oder andere Default Wert sich unterscheidet. Der sieht "läuft auf beiden DB" und die Fehlermeldung und denkt ...
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von MEissing
MEissing

Registriert seit: 19. Jan 2005
Ort: Egelsbach
1.091 Beiträge
 
Delphi 10.4 Sydney
 
#20

AW: Interbase

  Alt 9. Jun 2017, 10:45
Zitat:
Code:
validation error for column "CUSTOMER"."FIRSTNAME", value "*** null ***".
At procedure 'INITALL' line: 106, col: 5.
(Hat der Editor von IBExperts noch nichtmal eine Zeilennummerierung?!?!?)
Ich denke jetzt wird es unterirdisch....... (professionell ist anders)
Deine Meinung. Sei dir unbenommen.....

Das ein Editor (ich weiß um die Problematik der BLRs) eine Zeilennummerierung haben sollte (was er ja wohl auch hat), ist kein ungewöhnlicher Anspruch....
Matthias Eißing
cu://Matthias.Eißing.de [Embarcadero]
Kein Support per PN
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf