Chủ đề: Chia sẽ kinh nghiệm phân trang trên winform dùng StoreProcedure đối với bảng có record > 30.000
-
24-07-2014, 05:49 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Chia sẽ kinh nghiệm phân trang trên winform dùng StoreProcedure đối với bảng có record > 30.000
Mình tìm hiểu từ nhiều nguồn và rút được một tí kinh nghiệm như vầy : nếu select từ table duy nhất trong csdl thì câu lện thực thi sẽ trả về kết quả cực kỳ nhanh.
ví dụ: select ROW_NUMBER() OVER (ORDER BY a.HANG_HOA_ID asc) AS ROW,HANG_HOA_ID from DM_HH
vì vậy mình thấy khi phân trang nếu làm như sau thì kết quả trả về cực nhanh đối với csdl hơn 30.000 dòng trở lên (mình đã test trên 20 000 recode)
đầu tiên mình có 2 biến đầu vào
@currPage INT : page hiện tại
@recodpage : số dòng của 1 trang
as
kế đến :
DECLARE @so_dong NUMERIC(18,0)
SET @so_dong = (SELECT COUNT(*) FROM HH_DANH_MUC_HANG_HOA WHERE SU_DUNG = 1)
SELECT ROW, HANG_HOA_ID, SO_DONG INTO #TABLE
FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY a.HANG_HOA_ID asc) AS ROW,a.HANG_HOA_ID,@so_dong AS SO_DONG
FROM HH_DANH_MUC_HANG_HOA a
WHERE a.SU_DUNG = 1
)M
WHERE ROW BETWEEN(@currPage-1)*@recodperpage+1 AND @currPage*@recodperpage
và lấy kết quả trang cần lấy
SELECT a.HANG_HOA_ID,HANG_HOA_MA,HANG_HOA_TEN,.........
c.SO_DONG
FROM HH_DANH_MUC_HANG_HOA a
LEFT OUTER JOIN PHN_NHA_CUNG_CAP b ON a.NCC_ID=b.NCC_ID,
HH_NHOM_HANG d,#TABLE c
where a.NHOM_ID = d.NHOM_ID
and a.SU_DUNG=1 AND a.HANG_HOA_ID= c.HANG_HOA_ID
(nếu muốn sort các bạn nên sort trên gridView như vẫy dữ liệu sẽ load nhanh hơn)
nói là chia sẽ thật sự những gì mình viết có thể các bạn đều biết hết rồi, mong các bạn có ý kiến đánh giá.View more random threads:
- Sử dụng get set trong visual C# 2008
- Làm sao để lấy dung lượng bộ nhớ mà Process sử dụng
- Lưu thông tin kết nối database vào file config như thế nào?
- Điều Kiện Để gửi Nhận Mail trong lập trình window là gì ?
- Cách để xóa một dòng trên gridcontrol của devExpress đơn giản:U
- Thay đổi form bắt đầu chạy khi chương trình mở?
- Liên kết giữa các form trên C# theo cách cách nào?
- lập trình mạng trên Windows Form như thế nào???
- đếm số bản ghi sau khi thực hiện truy vấn sql sever
- gửi dữ liệu ra thanh ghi của cổng LPT như thế nào ?
Ngọc Bích xanh bản chất thuộc dòng đá đá hoa (jade). Và cẩm thạch là tên gọi chung của ngọc bích. Vì thực chất chúng thuộc dòng đá đa khoáng được hình thành từ chất Silicat dưới dạng dioxy. Ngọc bích...
Chia sẻ Vòng tay ngọc bích xanh là...