Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Langsame Select-Abfrage unter SQLite
progi123
myCSharp.de - Member

Avatar #avatar-3317.gif


Dabei seit:
Beiträge: 71
Herkunft: Süddeutschland

Themenstarter:

Langsame Select-Abfrage unter SQLite

beantworten | zitieren | melden

hallo,

wegen schlechter performance bei einer software die mit access arbeit, habe ich mich dazu entschieden auf sqlite umzusteigen. der vorteil ist, dass das importieren der daten bis zu 100 mal schneller geht. der nachteil: die sql-abfragen brauchen mehr zeit.
eine dieser abfragen sieht so aus:

SQLiteConnection conn = new SQLiteConnection("Data Source=c:\\Database.db;Version=3;New=True;Compress=True;UTF8Encoding=True;");
DataView dv1 = null;

SQLiteDataAdapter da1 = new SQLiteDataAdapter(
"SELECT game.bigblind AS [Limit], COUNT(*) AS [Total Hands], 
SUM(poker.wonlost) AS [Amount Won $], 
SUM(poker.wonlost) / (game.bigblind * 2) / COUNT(*) * 100 AS [BB/100 Hands],
SUM(poker.rake) AS [Rake $], 
SUM(poker.putmoney) * 100 / COUNT(*) AS [Voluntarily Put $ In The Pot %], 
SUM(poker.praise) * 100 / COUNT(*) AS [Preflop Raise %], 
SUM(poker.wentsd) * 100 / SUM(poker.sawflop) AS [Went To Showdown %], 
SUM(poker.wonsd) * 100 / SUM(poker.wentsd) AS [Won At Showdown %], 
SUM(poker.riverraw) / (SUM(poker.riverraw) + SUM(poker.rivercaw)) * 100 AS [River Raise If Won At Showdown %] 
FROM player INNER JOIN poker ON player.playerid = poker.playerid INNER JOIN game ON poker.gameid = game.gameid 
WHERE (player.player = 'POKERPLAYER') 
GROUP BY game.bigblind ORDER BY 1", conn);

DataTable dt1 = new DataTable("playerinfo1");

conn.Open();
da1.Fill(dt1);
conn.Close();

dv1 = dt1.DefaultView;
dataGridView1.DataSource = dv1;

diese abfrage hat bei access 10 sekunden gebraucht und bei sqlite 40 sekunden. habe ich etwas falsch gemacht oder ist sqlite dazu einfach nicht geeignet?
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von progi123 am .
private Nachricht | Beiträge des Benutzers
progi123
myCSharp.de - Member

Avatar #avatar-3317.gif


Dabei seit:
Beiträge: 71
Herkunft: Süddeutschland

Themenstarter:

beantworten | zitieren | melden

mittlerweile ist das problem erkannt und behoben. ich hab vergessen die primärschlüssel zu definieren. :tongue:
private Nachricht | Beiträge des Benutzers