Guten Tag und Frohe Ostern
Nun mal zu meinem "Problem"...
Ich rufe aus einmel View Daten ab, berechne sie lokal und update dann das berechnete Feld.
Testweise mit 4000 Datensätzen, die dauer der ganzen Prozedur dauert zwischen 2,8 - 6 Sekunden.
Wobei der Updatebefehl am längsten dauert von allem, abrufen und berechnen dauert ca 0,5-0,8 sek und die restliche Zeit wird für den Updatebefehl verbraucht.
Hier mal der Code den ich dafür verwende
Spoiler anzeigen
Achso und hier nochmal die View
Spoiler anzeigen
Wie man sieht, greift die View auf 3 Tabellen zu, um sich Parameter für die Berechnung zu holen.
Also was meint Ihr denn so, was man dort noch verbessern könnte weil es jetzt immerhin nur 4000 Datensätze sind und schon ne Zeit braucht...
Lieben Gruß und schonmal vielen Dank
Marvin
Nun mal zu meinem "Problem"...
Ich rufe aus einmel View Daten ab, berechne sie lokal und update dann das berechnete Feld.
Testweise mit 4000 Datensätzen, die dauer der ganzen Prozedur dauert zwischen 2,8 - 6 Sekunden.
Wobei der Updatebefehl am längsten dauert von allem, abrufen und berechnen dauert ca 0,5-0,8 sek und die restliche Zeit wird für den Updatebefehl verbraucht.
Hier mal der Code den ich dafür verwende
VB.NET-Quellcode
- Dim cb As MySqlCommandBuilder
- Dim data As DataTable
- Dim da As MySqlDataAdapter
- da = New MySqlDataAdapter("SELECT * FROM vdata_ressource_calc;", sqlcon.dbConnection)
- cb = New MySqlCommandBuilder(da)
- da.Fill(data)
- myTrans = sqlcon.dbConnection.BeginTransaction()
- myCommand.Transaction = myTrans
- For Each row As DataRow In data.Rows
- Dim Ressource As Int64
- item_index += 1
- Ressource = Convert.ToInt64(row("ressources")) + x
- sb.AppendLine(String.Format("UPDATE `worlds` SET `ressources`='{0}' WHERE `world_id`='{1}';", Ressource, row("world_id")))
- myCommand.CommandText = sb.ToString
- Next
- myCommand.ExecuteNonQuery()
Achso und hier nochmal die View
SQL-Abfrage
- SELECT
- `user_buildings`.`world_id` AS `world_id`,
- `user_buildings`.`buildid` AS `buildid`,
- `user_buildings`.`buildlevel` AS `buildlevel`,
- `user_buildings`.`producer_type` AS `producer_type`,
- `user_buildings`.`producer_power` AS `producer_power`,
- `data_build`.`res_produce` AS `res_produce`,
- `worlds`.`ressources` AS `ressources`
- FROM
- (
- `worlds`
- LEFT JOIN ( `data_build` JOIN `user_buildings` ON ( ( `user_buildings`.`buildid` = `data_build`.`build_id` ) ) ) ON ( ( `user_buildings`.`world_id` = `worlds`.`world_id` ) )
- )
- ORDER BY
- `user_buildings`.`world_id`
Wie man sieht, greift die View auf 3 Tabellen zu, um sich Parameter für die Berechnung zu holen.
Also was meint Ihr denn so, was man dort noch verbessern könnte weil es jetzt immerhin nur 4000 Datensätze sind und schon ne Zeit braucht...
Lieben Gruß und schonmal vielen Dank
Marvin
Imperiums - Fortschritt in ein neues Zeitalter (Remake 2021)