Diskuze: Chyba pri vybere z DB

C# .NET .NET (C# a Visual Basic) Chyba pri vybere z DB American English version English version

Avatar
Tayson
Člen
Avatar
Tayson:

Zdravim
Mam takyto problem ked vyberam data z DB kde prehladava DB tak mi to vypise takuto chybu ktoru pridam na obrazku. Viete mi niekto poradit co s tym ?

 
Odpovědět 9.4.2015 14:50
Avatar
MrPabloz
Člen
Avatar
Odpovídá na Tayson
MrPabloz:

Jak se připojuješ do db? Jaký SQL dotaz používáš pro výběr?

Nahoru Odpovědět 9.4.2015 15:41
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
Tayson
Člen
Avatar
Odpovídá na MrPabloz
Tayson:

Pripajam sa takto:

SqlConnection cn;
cn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;Integrated Security=True");

A data vyberam takto:

cn.Open();
DataTable dt = new DataTable();
SqlDataAdapter SDA = new SqlDataAdapter("SELECT p1, p2 FROM tabulka WHERE p1 LIKE '%" + search + "%'", cn);
SDA.Fill(dt);

Kde search je premenna a tam je nejaky textovz retazec.

 
Nahoru Odpovědět 9.4.2015 16:33
Avatar
Tayson
Člen
Avatar
Odpovídá na MrPabloz
Tayson:

Doplnil som aj do connection stringu Timeout rovne 0 ale nic.

 
Nahoru Odpovědět 9.4.2015 19:38
Avatar
Odpovídá na Tayson
Michal Štěpánek:

Dotaz evidentně trvá déle, než by bylo vhodné... Když dotaz trvá déle než pár sekund, je obvykle něco špatně. Buď je špatně optimalizovaná databáze, nebo je špatně položený dotaz...

Nahoru Odpovědět 9.4.2015 22:39
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Tayson
Člen
Avatar
Odpovídá na Michal Štěpánek
Tayson:

Nedá sa spraviť to že aj keď bude dotaz trvať dlho tak nevyhodí tuto výnimku ? No vyhľadávanie v DB trvá aj niekoľko minút niekedy kedže hľadám nejaký string vo vetách ktoré sú uložené v DB

 
Nahoru Odpovědět 9.4.2015 23:14
Avatar
Odpovídá na Tayson
Michal Štěpánek:

Nejsem si úplně jistý, ale myslím si, že ten timeout je "natvrdo" nastaven přímo v SQL...

Nahoru Odpovědět 9.4.2015 23:21
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Tayson
Člen
Avatar
Odpovídá na Michal Štěpánek
Tayson:

Fuuu tak to je teraz problém... Neviem ako to teraz riešiť kedže je tam veľa dat a prehľadáva to strašne dlho niekedy

 
Nahoru Odpovědět 9.4.2015 23:24
Avatar
hanpari
Redaktor
Avatar
Odpovídá na Tayson
hanpari:

A co ten sloupec nebo sloupce indexovat?

 
Nahoru Odpovědět 10.4.2015 5:26
Avatar
Tayson
Člen
Avatar
Odpovídá na hanpari
Tayson:

No to mam vytvorenu sercvice oriented database a neviem ako sa to tam da urobit ale rozmyslal som spravit to indexovanie ale ci by to brutalne zrychlilo vyhladavanie to neviem.... mam tam totiz v jednom stlpci ulozeny string ktory obsahuje aj niekolko viet a hladam v nom slovicko alebo slovne spojenie pomocou LIKE %hladany_vyraz% takze asi to trva tak dlho

 
Nahoru Odpovědět 10.4.2015 7:47
Avatar
hanpari
Redaktor
Avatar
Odpovídá na Tayson
hanpari:

Zrychlit by to mělo, viz:
http://cs.wikipedia.org/…b%C3%A1ze%29

Tohle by ti také mělo pomoc:
http://www.fuzzy.cz/…ziti-indexu/

Ale upřímně řečeno, myslím, že tvůj dotaz je z principu pomalý. Ještě mne napadlo, že by sis vytvořil uloženou proceduru.

 
Nahoru Odpovědět 10.4.2015 8:11
Avatar
Tayson
Člen
Avatar
Odpovídá na hanpari
Tayson:

Prave si to citam co si sem pridal a pomohlo by mi to indexovanie ale neviem ako spravit u mna vsade na nete kde vidim tutorialy tak su len na databazy kde sa pouziva microsoft management studio ale ako to spravit vo visual studiu to neviem

 
Nahoru Odpovědět 10.4.2015 9:03
Avatar
MrPabloz
Člen
Avatar
Odpovídá na Tayson
MrPabloz:

http://www.microsoft.com/…details.aspx?… ;) tu si to stahni zdarma, jinak na nastavení indexace je i SQL příkaz, který můžeš použít i ve visual studiu :)

CREATE INDEX index_name
ON table_name (column_name)
Nahoru Odpovědět 10.4.2015 9:09
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
Tayson
Člen
Avatar
Odpovídá na MrPabloz
Tayson:

No management studio mam stiahnute aj nainstalvoane ale na zaciatku ma pyta sa pripojit k servru a neviem co tam napisat .... a tam by som v podstate nastavil tie indexy tak ? .... a ten prikaz co si mi dal tak som ho tam pisal do visual studia ale pise mi ze je tam syntax error a pisal som to tam kde vytvaram tabulku. Konretne za primarny kluc som to pisal ako je na obrazku.

 
Nahoru Odpovědět 10.4.2015 9:14
Avatar
Odpovídá na Tayson
Michal Štěpánek:

Název serveru bude pravděpodobně

NAZEVPC\SQLEXPRESS

Nahoru Odpovědět 10.4.2015 9:35
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
MrPabloz
Člen
Avatar
Odpovídá na Tayson
MrPabloz:

Protože máš db jako localDb, tak se k ní přes managment studio přihlásíš cca nějak takhle: http://gwb.blob.core.windows.net/…DbSSMS_4.png

Ohledně toho tvoření indexu, pokud to nastavuješ rovnou v příkazu create, nemělo by tam být myslím jméno tabulky, tímpádem jenom INDEX (column_name), akorát si nejsem jistý jestli není potřeba tam i vložit typ indexu, třeba btree

Nahoru Odpovědět 10.4.2015 9:38
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
Tayson
Člen
Avatar
Odpovídá na MrPabloz
Tayson:

Takze si tam otvorit tu moju DB nastavit indexy .... ono sa zmeni asi aj dotaz pre select tym padom nie ?

 
Nahoru Odpovědět 10.4.2015 9:56
Avatar
Tayson
Člen
Avatar
Odpovídá na Michal Štěpánek
Tayson:

Ja sa sice dostanem do management studia aj si tam najdem DB ale nemozem s nou robit... najlepsie by bolo aby som tie indexy nastavil rovno vo visual studiu ale zatial s tym vobec neviem pohnut

 
Nahoru Odpovědět 10.4.2015 10:28
Avatar
Tayson
Člen
Avatar
Odpovídá na MrPabloz
Tayson:

Ono v podstate mam v DB ulozene nazvy diel a k tomu su nejake popisy a tie su dlhe aj na niekolko riadkov co znamena ze ked vyhladavam podla "...LIKE popis %string%" tak to trva strasne dlho.... no ono je asi blbost vyhladavat podla popisu lepsie by bolo asi podla diela ... pretoze nazov je kratky kazdeho diela a ten popis mozem kompresovat takze bude mensi ... ale zasa nebudem moct najst napriklad vsetky diela co sa tykaju programovania pretoze ak to neni v nazve iba v popise

 
Nahoru Odpovědět 10.4.2015 11:32
Avatar
MrPabloz
Člen
Avatar
Odpovídá na Tayson
MrPabloz:

S tím sql studiem ti moc neporadím, ale pokud chceš přidat čistě index tak ho zkus zvlášt jako příkaz ve visualku spustit, nedávat to do create skriptu.

Jinak mě napadla věc, není lepší si tímpádem udělat zvlášt tabulku (id_knihy, klicove_slovo)? Sice by si musel projít všechny popisy a vložit klíčové slova z popisu do tabulky, ale pokud pak budeš vyhledávat podle jednoho slova, nemyslím si že by bylo až tak náročné projet db a vrátit id knih podle klíčových slov. Hlavně nebude prohledávat pomocí reg. výrazů a tímpádem se to urychlí :)

Nahoru Odpovědět 10.4.2015 12:42
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
Tayson
Člen
Avatar
Odpovídá na MrPabloz
Tayson:

No skúsim ten index pridať tak ako vravíš ty ... A tie klúčové slova má napadli len to už by trebalo od začiatku to robiť pretože je tam strašne veľa údajov DB má okolo 1,9GB

 
Nahoru Odpovědět 10.4.2015 13:05
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 21 zpráv z 21.