Se combină 2 ResultSet

voturi
1

există o modalitate de a adăuga rezultatele 2 interogări diferite pentru un ResultSet?

ceva de genul:

ResultSet rs ;

i=0;

while(i<=l)


  ResultSet rs1 = select * from tablei;

  rs = rs + rs1; 

 i++;

}

Știu că pot să-l fac cu unire, dar am o mulțime întrebări și dacă am folosi UNION interogare este prea lent.

Vreo idee?

Întrebat 24/12/2008 la 07:36
sursa de către utilizator
În alte limbi...                            


5 răspunsuri

voturi
0

Nu cred că există vreo modalitate de a adăuga un ResultSet la altul. Ei nu au nici o metodă din clasa care face un astfel de lucru sau actualizează ResultSet din codul. ResultSet sunt proiectate pentru a primi date din baza de date și nu de la dezvoltator manipulare, datele introduse de utilizator sau altele asemenea.

Sugestia mea ar fi pentru a extrage date într-un tablou sau ceva similar și să manipuleze datele din codul sau face Uniunea în interogare.

Publicat 24/12/2008 la 08:22
sursa de către utilizator

voturi
0

În funcție de bibliotecă acces la date utilizați, ResultSet are o metodă numită MoveNextRecordSet (), și SqlDataReader oferă NextResult ().

Creați o procedură stocată pentru a reveni mai multe seturi de rezultate (de exemplu, mai multe instrucțiuni SELECT într-un sp), și să navigați prin seturile de rezultate folosind aceste metode.

Publicat 24/12/2008 la 08:40
sursa de către utilizator

voturi
1

O faci o UNION sau UNION ALL? Acestea din urmă nu ar trebui să fie mult diferit de a face singur (desi mi-ar aștepta să faci tu însuți mai lent).

Publicat 24/12/2008 la 08:49
sursa de către utilizator

voturi
0

Aș fi surprins dacă ai găsit o metodă care are o performanță mai bună decât UNION în baza de date. Uniunea este de a face ceea ce vrei, și serverul de baze de date va fi optimizat acest lucru ca cel mai bine, deoarece acestea pot. Ai fi, în esență, re-inventa roata.

Dacă UNION este prea lent, apoi încercați să examineze dacă baza de date ar putea face cu o mai bună indexare. Ar trebui să faci, de asemenea, unele analize de sincronizare pe interogări individuale, în comparație cu opțiunea UNION. Mi-ar aștepta una sau alte interogări este lent biți, mai degrabă decât cea a Uniunii.

Publicat 24/12/2008 la 09:07
sursa de către utilizator

voturi
0

DACĂ că Uniunea ia prea mult timp pentru a finaliza poate ar trebui să ia în considerare schimbarea indexează pe mesele pe care le utilizați.

Ai verificat fragmentarea index?

A se vedea dacă adăugați indicii dreapta, dacă se poate accelera interogarea în acest fel. Nu cred că un timp fiind folosit ca asta va fi mai rapid decât o uniune tot.

Publicat 24/12/2008 la 10:59
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more