On 3 juil, 15:30, clipper <es...@essai.fr> wrote:
> .../...
> Pour l'instant, j'ai une base sqlite avec une table T_Positions dans
> laquelle je rentre toutes les positions de tous les navires avec comme
> champs le x, le y, l'id du navire et la date (au sens large du terme,
> c'est un entier en minutes depuis le début du jeu).
>
> Quand je veux afficher toutes les trajectoires, je suis alors obligé de
> parcourir la table sur 2 indices, d'abord par id puis par date. Et dès
> que le nombre de positions commence à augmenter, ça devient loooonnnnng.
Voilà qui m'étonne beaucoup ! Je fais des requêtes SQLite sur des
tables énormes et je n'ai aucun problème de vitesse, alors ce genre de
requête, uniquement en lecture, devrait vraiment aller vite. Tu dois
avoir un truc comme ça :
if {[catch {package require sqlite3}] || [catch {sqlite3 DB
$::sqlite_file} R]} {
puts "Erreur SQLite : $R"
exit
}
DB timeout 90000
DB eval [subst {
SELECT x,y,id,date
FROM T_Positions
ORDER BY id,date ASC
}] res {
# Le traitement sur chaque ligne vient ci-dessous :
puts "X = $res(x) - Y = $res(y) - ID = $res(id) - Date = $res(date)"
}
Ce genre de traitement donne quoi chez toi ?
--
David