Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ADO.NET brisanje iz tabele

[es] :: .NET :: ADO.NET brisanje iz tabele

[ Pregleda: 2537 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

stanbran

Član broj: 5022
Poruke: 64
*.eckelmann.de.



Profil

icon ADO.NET brisanje iz tabele18.03.2005. u 17:12 - pre 232 meseci
Moze mi neko pomoci sa sljedecim problemom :

Imam listu (ListBox), vezana preko DataView sa jednim Dataset-om (jedna MySQL tabela). Hocu brisati 4000-5000 rekorda iz lista/tabele. Ako iteriram Rows iz tabele, provjerim za svaku ako je treba brisati, pa je brisem sa Delete(), traje mi sve nekoliko minuta (!).
Ako upotrebim OdbcCommand (stavim "DELETE FROM ..." u njemu) i zovem ExecuteNonQuery(), pa citam ponovo ceo dataset vezan za moju listu iz tabele, sve traje 2-3 sekunde !
Da li ima neko objasnjenje zasto prva metoda tako dugo traje ?

Hvala i pozdrav,
Stanbran
 
Odgovor na temu

eon

Član broj: 10450
Poruke: 53
*.as54.bi.bih.net.ba.



Profil

icon Re: ADO.NET brisanje iz tabele19.03.2005. u 22:50 - pre 232 meseci
Za svako Delete() odabrani row se oznaci kao obrisan. DataAdapter ima DeleteCommand koji izgleda otprilike (ako je rucno pises) "DELETE FROM [TABLE] WHERE [PRIMARY_KEY] = @PRIMARY_KEY (ako je konstruise command builder, onda je jos veca i komplikovanija radi obezbjedjivanja konkurentnog pristupa bazi).
U jednom trenutku moze samo jedan red obrisati. Kada pozoves DataAdapter.Update(dataset, datatable) - za svaki od tvojih 4-5 hiljada slogova izvrsava se po jedna DeleteCommand prema bazi. Da ne spominjem sporost iteriranja kroz dataset za vrijeme dok si oznacavao redove za brisanje.

Ako medjutim, upotrijebis DELETE FROM TABLE WHERE [KRITERIJ PO KOM ODLUCUJES BRISANJE] - zadajes samo jedanput komandu bazi podataka, koja uz svoje optimizirane algoritme to obavi relativno brzo.

Neka me neko ispravi ako grijesim ili ako sam pogresno shvatio pitanje. :)
 
Odgovor na temu

sekretar
Sekretar
Naseljeno mjesto

Član broj: 37558
Poruke: 72
*.com
Via: [es] mailing liste



Profil

icon Re: ADO.NET brisanje iz tabele20.03.2005. u 01:17 - pre 232 meseci
Odličan odgovor ostaje u gmail arhivi :)


--
Signature:
(appended at the end of all outgoing messages)
 
Odgovor na temu

[es] :: .NET :: ADO.NET brisanje iz tabele

[ Pregleda: 2537 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.