Welcome to the SQLitening support forums!
Started by Marty Francom, October 28, 2010, 05:38:16 am
QuoteAre there any practical limits for the SQLiteningServer ?
QuoteWith heavy use of the server is there any chance that the server could return information to the wrong user?Or, worse, post info to the wrong database.
QuoteAre there any practical limits to the number of databases the SQLiteningServer can handle at any one time?
QuoteWhat are the worst case senerios? And how can I protect against problems? With many databases being accessed an nearly the same time who might this effect performace of SQLitening?
QuoteI would write a 'stress test' application that would simulateyour situation as close as possible to determine the performance.
QuoteWhen I said "I would write a 'stress test' application...." I reallyshould have said "If I was Marty, I would write a 'stress test' application....".
QuoteNumber of Bots=100 Average Minutes Run=13.4Messages=42613 Messages Per Minute= 3187.60832504883 Messages Per Second= 53.126805417480Inserts= 6534 Inserts Per Minute= 488.76710853188 Inserts Per Second= 8.146118475531Updates= 3310 Updates Per Minute= 247.60011160705 Updates Per Second= 4.126668526784Deletes= 6077 Deletes Per Minute= 454.58183632510 Deletes Per Second= 7.576363938751Selects= 26692 Selects Per Minute= 1996.65926858478 Selects Per Second= 33.277654476413
' Loop until command to stop do ' Check for stop if slSelStr("Select Command from tblBotCtl") = "Stop" then slClose slDisconnect exit do end if ' Determine what kind of transaction to do select case long rnd(1, 10) case 1 ' Insert for llDo = 1 to gkInsertCount incr llInsertCount slExe iif$(llDo = 1, "Begin;", "") & slBuildInsertOrUpdate("tblStress", "Null" & $NUL & _ format$(llProcessID) & $NUL & _ format$(rnd(100, 199)) & $NUL & _ format$(rnd(200, 299)) & $NUL & _ format$(rnd(300, 399)) & $NUL & _ "Null") & iif$(llDo = gkInsertCount, ";End", "") if llDo <> 1 then incr llMessageCount next case 2 ' Update incr llUpdateCount slExe slBuildInsertOrUpdate("tblStress", format$(llUpdateCount), _ "UCount", _ "ProcessID=" & format$(llProcessID)) llRowsUpdatedCount += slGetChangeCount case 3 ' Delete incr llSelectCount lsA = slSelStr("Select RowID from tblStress where ProcessID=" & format$(llProcessID) & " Order by RowID") llRowsSelectedCount += axParseCount(lsA, $VT) for llDo = 1 to axParseCount(lsA, $VT)\2 slExe "Delete from tblStress where RowID=" & parse$(lsA, $VT, llDo) incr llDeleteCount incr llMessageCount next case > 3 ' Select incr llSelectCount slSel "Select * from tblStress where ProcessID=" & format$(llProcessID) do while slGetRow incr llRowsSelectedCount loop end select ' Sleep some axDoEvents loop
QuoteThe good news is --- SQLiteServer/SQLite produced valid results on EVERYtest, not a single failure.