Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 6 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.02.12
Prihlásený: 13.02.15
Príspevky: 10
Témy: 3
Príspevok NapísalOffline : 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. :)


Offline

Skúsený užívateľ
Skúsený užívateľ
visual basic - dlhe otvaranie formulara s datagridom plneneho z DB

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 21.01.2015 18:56

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, ...
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.02.12
Prihlásený: 13.02.15
Príspevky: 10
Témy: 3
Príspevok Napísal autor témyOffline : 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


Offline

Skúsený užívateľ
Skúsený užívateľ
visual basic - dlhe otvaranie formulara s datagridom plneneho z DB

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 22.01.2015 14:09

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, ...
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.02.12
Prihlásený: 13.02.15
Príspevky: 10
Témy: 3
Príspevok Napísal autor témyOffline : 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


Offline

Skúsený užívateľ
Skúsený užívateľ
visual basic - dlhe otvaranie formulara s datagridom plneneho z DB

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 23.01.2015 13:57

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, ...
Odpovedať na tému [ Príspevkov: 6 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Visual Basic

v Delphi, Visual Basic

3

737

10.08.2011 19:03

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Knihy Visual Basic

v Delphi, Visual Basic

2

1249

08.09.2009 14:25

reDo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Visual Basic Kalkulačka

v Delphi, Visual Basic

1

1022

29.04.2011 12:28

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Visual Basic 2008

v Ostatné programy

2

766

06.04.2009 13:34

Ominous Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Visual Basic 2008 tiene

v Delphi, Visual Basic

3

694

27.04.2010 22:13

Patkoo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. visual basic 2008 textbox

v Delphi, Visual Basic

2

704

02.01.2010 17:37

eragon124 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. manual k Visual Basic

v Delphi, Visual Basic

5

4029

17.05.2009 10:06

M.Valasek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. visual basic exe subor

v Delphi, Visual Basic

1

1509

08.01.2010 16:05

semo1212 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Visual Basic premenná public

v Delphi, Visual Basic

0

470

04.12.2013 11:40

Karo88 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Stiahnutie Visual Basic 6

v Delphi, Visual Basic

8

3955

15.03.2009 20:24

prandof Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. OpenFileDialog vo Visual Basic 2008

v Delphi, Visual Basic

17

3248

15.08.2011 18:59

marian_sk Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. [Visual Basic 2010] Minimalizovanie programu

v Delphi, Visual Basic

0

311

08.04.2021 17:22

marian_sk Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vista & Visual basic 6

v Operačné systémy Microsoft

1

453

08.02.2009 12:07

Mettiu Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Kniha C# alebo Visual Basic

v Technológia .NET

1

527

07.03.2014 21:42

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Visual basic - rozdiely vo verziách

v Delphi, Visual Basic

1

664

27.04.2010 22:12

Patkoo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. [Visual Basic 6] Minimalizovanie programu???

v Delphi, Visual Basic

4

989

11.01.2018 12:55

georgewalton868 Zobrazenie posledných príspevkov


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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra