Stan, Claudius, your feedback on fc1 ?

Claudius Sailer Claudius at sailer-online.de
Tue Dec 27 20:41:57 CST 2005


Hi Ruslan,


Am 27. Dez 2005 um 19:30 Uhr schrieb Ruslan Zasukhin:

> Claudius, also I wonder, if fc1 give any speedup for your project ?
>
> But since you use heavy SQL, main speedup here yet in forward.

with my 2nd TestApplication I send to you I get following results

V4RB1.10 RB 5.5
1,61sec
1,86sec
1,90sec
1,90sec
1,61sec

V4RB2.1fc1 RB2006r1b4
2,21sec
2,28sec
2,00sec
1,96sec
1,96sec



TestApplication 2 always changing "AktuellesKonto"


V4RB1.10

     SQLString="SELECT B.RecID, B.BDatum, KZ.Konto_Name,  
K.Kategorie_Name, B.Betrag, B.Kommentar, B.Blocked"
     SQLString=SQLString+" FROM Buchungen B, Kategorien K, Konten KZ"
     SQLString=SQLString+" WHERE B.Kategorie_ID=K.RecID"
     SQLString=SQLString+ " AND B.Ziel_Konto=KZ.RecID"
     SQLString=SQLString+ " AND B.Deleted='0'"
     SQLString=SQLString+ " AND B.Herk_Konto='"+cstr(AktuellesKonto)+"'"

     cmd= "INSERT INTO Anzeige (Buchungs_ID, BDatum, Gegenkonto,  
Kategorie, Ausgabe, Kommentar, Blocked) "
     cmd=cmd + SQLString
     count=meineDatenbank.SQLExecute(cmd)

     //Einnahmen
     SQLString="SELECT B.RecID, B.BDatum, KO.Konto_Name,  
K.Kategorie_Name, B.Betrag, B.Kommentar, B.Blocked"
     SQLString=SQLString+" FROM Buchungen B, Kategorien K, Konten KO"
     SQLString=SQLString+" WHERE B.Kategorie_ID=K.RecID"
     SQLString=SQLString+ " AND B.Herk_Konto=KO.RecID"
     SQLString=SQLString+ " AND B.Deleted='0'"
     SQLString=SQLString+ " AND B.Ziel_Konto='"+cstr(AktuellesKonto)+"'"

     cmd= "INSERT INTO Anzeige (Buchungs_ID, BDatum, Gegenkonto,  
Kategorie, Einnahme, Kommentar, Blocked) "
     cmd=cmd + SQLString
     count=meineDatenbank.SQLExecute(cmd)

     meineDatenbank.Tanzeige.flush

FIRSTPART FINISHED

   SQLString="SELECT RecID, * FROM Anzeige ORDER BY BDatum,  
Gegenkonto, Kategorie"
   CurBuchungen=meineDatenbank.SQLselect(SQLString, kV_Server,  
kV_NoLocks, kV_Random)
   Ende=CurBuchungen.RecordCount

SECONDPART FINISHED

Filling ListBox

THIRDPART FINISHED

Results in sec FIRSTPART / SECOND PART / THIRDPART

0,78 / 0,03 / 1,43
0,70 / 0,05 / 1,31
0,81 / 0,05 / 1,40
0,73 / 0,06 / 1,30
0,71 / 0,05 / 1,23


V4RB2.1fc1

   SQLString=SQLBuilder(33,false,cstr(AktuellesKonto))

FIRSTPART FINISHED

   CurBuchungen=V4RBSQLSelect(meineDatenbank,SQLString)
   Ende=CurBuchungen.RecordCount

SECONDPART FINISHED

Filling ListBox

THIRDPART FINISHED

Results in sec FIRSTPART / SECONDPART / THIRDPART

0,000 / 1,30 / 1,43
0,016 / 1,11 / 1,56
0,030 / 1,05 / 1,38
0,016 / 1,53 / 1,08
0,030 / 1,06 / 1,06

SQL-Coding for SQLString. I am using UNION because other possiblitiy  
is actually not supported with V4RB2 Call #811

     SQLStringBuild="SELECT B.RecID, B.BDatum, KZ.Konto_Name,  
K.Kategorie_Name, B.Betrag, null, B.Kommentar, B.Blocked"
     SQLStringBuild=SQLStringBuild + " FROM Buchungen B, Kategorien  
K, Konten KZ"
     SQLStringBuild=SQLStringBuild + " WHERE B.Kategorie_ID=K.RecID"
     SQLStringBuild=SQLStringBuild + " AND (B.Ziel_Konto=KZ.RecID AND  
B.Herk_Konto='"+CheckString+"') AND B.Deleted='0'"
     SQLStringBuild=SQLStringBuild + " UNION"
     SQLStringBuild=SQLStringBuild + " SELECT B.RecID, B.BDatum,  
KZ.Konto_Name, K.Kategorie_Name, null, B.Betrag, B.Kommentar, B.Blocked"
     SQLStringBuild=SQLStringBuild + " FROM Buchungen B, Kategorien  
K, Konten KZ"
     SQLStringBuild=SQLStringBuild + " WHERE B.Kategorie_ID=K.RecID"
     SQLStringBuild=SQLStringBuild + " AND (B.Herk_Konto=KZ.RecID AND  
B.Ziel_Konto='"+CheckString+"') AND B.Deleted='0'"
     SQLStringBuild=SQLStringBuild + " ORDER BY B.BDatum,  
KZ.Konto_Name, K.Kategorie_Name"


My Result

testapplication 2 is close to V4RB1.10. Really good because at the  
beginning V4RB2.X was betwenn 2 and 3 times slower as V4RB1.10.

TestApplication 1 is with THIRDPART now close and okay. But  
SECONDPART hurts me deeply with V4RB2.1fc1. When I say FIRSTPART and  
SECONDPART is a union V4RB1.10 is 10-40% faster than V4RB2.1fc1.  
V4RB2.1 is much faster as some versions before, but it would be nice  
when it would be faster than V4RB1.10. In this coding V4RB1.10  
Solution has 2 SQLs which fills an other table from tables and SQL  
which reads from this table and generates a cursor. And this is  
faster then having 1 SQL which reads from tables and generates  
cursor. I would expect that second way should be much faster as  
solution 1 with V4RB1.10


bye


Claudius

-- 
G4/733 QS / MacOS X 10.4de / RB 2005r4/ Valentina 1.10.0 & 2.0.4
Homepage    http://www.ClaSai.de
iChat        ryhoruk
RealBasic ListBoxes: [ I feel the need...the need for speed!!! ]




More information about the Valentina-beta mailing list