PDA

View Full Version : 4 select trong 1 stored và 4 stored riêng rẽ?



nmd
06-09-2007, 17:15
Mình muốn hỏi về 2 trường hợp sau:
-Viết 1 stored trong đó có 4 câu lệnh select mà select 4 table khác nhau. Nó sẽ được gọi 1 lần thôi.
-Chia 4 câu lệnh select thành 4 stored khác nhau riêng rẽ. Và được gọi 4 lần khác nhau.

Trong 2 trường hợp thì trường hợp nào tốt hơn về mặt thời gian và các mặt khác?

thanhlv84
06-09-2007, 18:14
theo tôi nghĩ thì nó cũng ko chênh lệch nhau là mấy,nhưng với tốc độ xử lý của CPU hiện nay thì sự chênh lệch(nếu có) cũng có đáng là bao,bạn nên quan tâm xem cách sử dụng nào là hợp lý hơn tùy vào từng trường hợp cụ thể
thân !

nmd
07-09-2007, 13:59
Cám ơn bạn đã trả lời. Nhưng 4 lần connect tới CSDL thì phải mất thời gian hơn là 1 lần chứ bạn?

xbacala
07-09-2007, 19:47
Vấn đề này còn ảnh hưởng đến bộ nhớ nữa chứ không đơn thuần là 4 nhiều hơn 1 connect.

Nếu bạn thực thi 1 lần 4 câu lệnh thì có thể kết quả của 4 câu lệnh sẽ được return về. Do đó, lượng memory cần dùng nhiều hơn. Memory ở đây có thể là Server memory hay client memory tùy theo you dùng Cursor location là client hay sever.

Do đó, nếu từng câu lệnh của you chỉ trả về số lượng recordset không lớn thì thực thi 1 lần 4 câu lệnh cùng 1 lúc sẽ hiệu quả hơn (ADO hỗ trợ NextRecordset cho Recordset Object còn ADO.NET hỗ trợ MARS) còn nếu 1 hay nhiều câu trả về số lượng lớn (chừng trên vài nghìn) recordset thì nên thực hiện từng câu.

tataxa206
18-09-2007, 22:21
theo tôi thi trường hợp 1 la hơn han rồi.chu chẳng ai lại đi gọi 4 lệnh Select riêng rẽ cả

xbacala
18-09-2007, 23:11
theo tôi thi trường hợp 1 la hơn han rồi.chu chẳng ai lại đi gọi 4 lệnh Select riêng rẽ cả

không thể nói chắc thế được, còn tùy thuộc vào từng trường hợp cụ thể. đọc ở trên sẽ biết !