| | |
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Autor | Správa |
---|
Registrovaný: 24.02.12 Prihlásený: 13.02.15 Príspevky: 10 Témy: 3 | Napísal Cloie: 21.01.2015 17:55 | |
|
Dobrý deň, v práci sme mali staré programy v 602SQL. Dostali sme za úlohu prepísať ich do visual basicu. Vývojové prostredie sme použili Microsoft visual studio a na DB používame Microsoft sql management studio. Neviem vyriešiť tento vzniknutý problém: Ak spustím niektorý zo SQL štandardných príkazov nachádzajúcich sa v programe (napr. select) priamo v MS managemet studiu tak vykonanie je okamžité. Ak ten istý príkaz spúšťam v programe trvá to niekoľko sekúnd. Je to neúmerne dlhé. Dáta zo selektu sa načítavajú do datagridu. Načítanie dát prebieha v loade formulára a preto jeho otvorenie dosť trvá. Formulár sa otvorí až keď načíta dáta. Mám dojem, že táto odozva je spojená len s načítaním dát do datagridov nakoľko problémy s odozvou systému na zapísanie zmien alebo vloženie nových dát nemáme. Ak ste sa s tým niekto stretli vopred ďakujem za skúsenosti a rady.
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
Príčinou spomalenia môže byť viacero... Bolo by fajn, keby si mohol dať ukážku toho svojho kódu, ktorý sa vykonáva pri spustení, lebo takto môžme len tipovať, v čom je konkrétne problém. Vo všeobecnosti nie je dobrý nápad natiahnuť všetky dáta, ale väčšinou sa na to používa stránkovanie, prípadne aj filtrovanie údajov podľa kritérií. Plus k tomuto všetkému, načítanie dát by som určite riešil asynchrónne aby to neblokovalo UI vlákno...
_________________ C#, PHP, ... |
|
Registrovaný: 24.02.12 Prihlásený: 13.02.15 Príspevky: 10 Témy: 3 | Napísal autor témy Cloie: 22.01.2015 7:54 | |
|
Každý formulár je napísaný takýmto spôsobom. Ten select zvyčajne ťahá okolo 50 000 riadkov čo si myslím nemal byť problém Kód: Private Sub Prehlad_analyz_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.Cis_prodTableAdapter.Fill(Me.***DataSet.Cis_prod) Me.Cis_podskupTableAdapter.Fill(Me.***DataSet.Cis_podskup) Me.Cis_skupTableAdapter.Fill(Me.***DataSet.Cis_skup) .... Nacitaj_analyzy() END SUB
Private Sub Nacitaj_analyzy() cmdText = "SELECT Analyzy.ID_ana, Analyzy.Vzorka, Analyzy.Nazov_ana, Analyzy.Hodnota, Analyzy.Zaciatok, Analyzy.Koniec, " _ & "FORMAT(Analyzy.Zaciatok,'yyyy-MM-dd') AS Datum_zaciatok, FORMAT(Analyzy.Koniec,'yyyy-MM-dd') AS Datum_koniec, " _ & "Analyzy.Analyzoval, Analyzy.Minimum_a, Analyzy.Maximum_a, Analyzy.Vymazana, Analyzy.Archiv, Analyzy.ID_uziv_ana, " _ & "Vzorky.Meno_vzorky, Vzorky.ID_cis_prod, Cis_prod.Nazov, Cis_prod.ID_podskup, Parameter.Nazov_param, Parameter.Jednotka, " _ & "(SELECT Priezvisko + ' ' + Meno FROM Uzivatelia WHERE (ID_uziv = Analyzoval)) AS Analyzoval_meno, " _ & "(SELECT ID_skup FROM Cis_podskup WHERE Cis_podskup.ID_podskup = Cis_prod.ID_podskup) AS skup " _ & "FROM Analyzy INNER JOIN Vzorky ON Analyzy.Vzorka = Vzorky.ID_vzorky " _ & "INNER JOIN Cis_ana ON Analyzy.Nazov_ana = Cis_ana.ID_cis_ana INNER JOIN Cis_prod ON Vzorky.ID_cis_prod = Cis_prod.ID_prod " _ & "AND Cis_ana.ID_prod = Cis_prod.ID_prod INNER JOIN Parameter ON Cis_ana.Param_ID = Parameter.ID_param " _ & "WHERE ((Analyzy.Archiv IS NULL OR Analyzy.Archiv = 0) AND (Analyzy.Vymazana IS NULL OR Analyzy.Vymazana = 0) AND Analyzoval IS NOT NULL) " _ & "ORDER BY Analyzy.Zaciatok DESC"
Try dsAnalyzy = New DataSet() bsAnalyzy = New BindingSource() daAnalyzy = New SqlClient.SqlDataAdapter(cmdText, DBconn.DBCONN) dsAnalyzy.Clear() daAnalyzy.Fill(dsAnalyzy) bsAnalyzy.DataSource = dsAnalyzy.Tables(0) Me.dgAnalyzy.DataSource = bsAnalyzy Sprav_filter() bsAnalyzy.Filter = txtFilter Me.dgAnalyzy.Refresh()
Catch ex As Exception MessageBox.Show("Chyba načítania hodnôt ... ", "Chyba") End Try
End Sub
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
A reálne potrebuješ zobraziť 50000 riadkov? Lebo potom samozrejme, že poskladať 50 000 riadkov do Gridu chvíľku trvá.. Pokiaľ ale vážne potrebuješ toľko výsledkov, proste sprav asynchrónne načítanie údajov a naplnenie datagridu...
_________________ C#, PHP, ... |
|
Registrovaný: 24.02.12 Prihlásený: 13.02.15 Príspevky: 10 Témy: 3 | Napísal autor témy Cloie: 23.01.2015 7:29 | |
|
Ďakujem, vyskúšam. Máme ešte nejaké svoje tipy že ako to vylepšiť tak musíme to otestovať. Nepoužívame indexovanie tak ešte to skúsime
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
Indexovanie by pomohlo pokiaľ by samotný dotaz trval dlho, ale podľa tvojho opisu to vyzerá tak, že vytvorenie gridu je úzkym hrdlom aplikácie.
_________________ C#, PHP, ... |
|
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Visual Basic v Delphi, Visual Basic | 3 | 737 | 10.08.2011 19:03 Fico | | Knihy Visual Basic v Delphi, Visual Basic | 2 | 1249 | 08.09.2009 14:25 reDo | | Visual Basic Kalkulačka v Delphi, Visual Basic | 1 | 1022 | 29.04.2011 12:28 walther | | Visual Basic 2008 v Ostatné programy | 2 | 766 | 06.04.2009 13:34 Ominous | | Visual Basic 2008 tiene v Delphi, Visual Basic | 3 | 694 | 27.04.2010 22:13 Patkoo | | visual basic 2008 textbox v Delphi, Visual Basic | 2 | 704 | 02.01.2010 17:37 eragon124 | | manual k Visual Basic v Delphi, Visual Basic | 5 | 4029 | 17.05.2009 10:06 M.Valasek | | visual basic exe subor v Delphi, Visual Basic | 1 | 1509 | 08.01.2010 16:05 semo1212 | | Visual Basic premenná public v Delphi, Visual Basic | 0 | 470 | 04.12.2013 11:40 Karo88 | | Stiahnutie Visual Basic 6 v Delphi, Visual Basic | 8 | 3955 | 15.03.2009 20:24 prandof | | OpenFileDialog vo Visual Basic 2008 v Delphi, Visual Basic | 17 | 3248 | 15.08.2011 18:59 marian_sk | | [Visual Basic 2010] Minimalizovanie programu v Delphi, Visual Basic | 0 | 311 | 08.04.2021 17:22 marian_sk | | Vista & Visual basic 6 v Operačné systémy Microsoft | 1 | 453 | 08.02.2009 12:07 Mettiu | | Kniha C# alebo Visual Basic v Technológia .NET | 1 | 527 | 07.03.2014 21:42 walther | | Visual basic - rozdiely vo verziách v Delphi, Visual Basic | 1 | 664 | 27.04.2010 22:12 Patkoo | | [Visual Basic 6] Minimalizovanie programu??? v Delphi, Visual Basic | 4 | 989 | 11.01.2018 12:55 georgewalton868 |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|