Bạn nên sử dụng vòng lặp thay vì con trỏ? Ưu điểm/nhược điểm của con trỏ là gì?Con trỏ verus trong khi vòng lặp - những ưu điểm/nhược điểm của con trỏ là gì?
Trả lời
Một số phụ thuộc vào DBMS, nhưng nói chung:
Ưu điểm:
Vòng lặp hoạt động tốt khi nói đến xử lý từng hàng
trình cũng hợp lý với các tập dữ liệu lớn
Nhược điểm:
Đừng quy mô cũng
Sử dụng nhiều tài nguyên máy chủ
Tăng tải về tempdb
Có thể gây rò rỉ nếu sử dụng không chính xác (ví dụ: Mở mà không tương ứng Đóng)
Tôi sẽ hỏi bạn những gì bạn đang làm với vòng lặp con trỏ/vòng lặp đó.
Nếu bạn đang cập nhật hoặc trả lại dữ liệu tại sao bạn không sử dụng mệnh đề WHERE phù hợp. Tôi biết những người sẽ nói rằng bạn không bao giờ nên sử dụng con trỏ.
tôi sau này chút lời khuyên:
[...] mà là tốt hơn: con trỏ hoặc vòng KHI? Một lần nữa, nó thực sự phụ thuộc về tình hình của bạn. Tôi hầu như luôn sử dụng con trỏ để lặp qua các bản ghi khi cần . Định dạng con trỏ là trực quan hơn một chút đối với tôi và, vì tôi chỉ sử dụng các cấu trúc để lặp lại kết quả được đặt một lần, nó có ý nghĩa khi sử dụng con trỏ FAST_FORWARD . Hãy nhớ rằng loại con trỏ mà bạn sử dụng sẽ có tác động rất lớn về hiệu suất của cấu trúc vòng lặp của bạn.
— Tim Chapman trong Comparing cursor vs. WHILE loop performance in SQL Server 2008
Các bài viết liên kết chứa các ví dụ đơn giản về cách thực hiện từng phương pháp.
Đáng buồn là nội dung siêu liên kết không còn tồn tại nữa. Tôi nghĩ rằng đây là bài viết: http://www.techrepublic.com/blog/the-enterprise-cloud/comparing-cursor-vs-while-loop-performance-in-sql-server-2008/1741/ –
@PawelKrakowiak Cố định, cảm ơn. –
- 1. Điểm con trỏ là gì?
- 2. Con trỏ cho con trỏ là gì?
- 3. Con trỏ vòng lặp trong Oracle
- 4. Ý nghĩa của con trỏ trỏ tới con trỏ trong C và trong C++ là gì?
- 5. Ưu điểm/nhược điểm của các con trỏ tự động
- 6. C# con trỏ, vòng lặp và generics
- 7. Con trỏ 'này' là gì?
- 8. Con trỏ void trong C++ là gì?
- 9. Kích thước của con trỏ là gì?
- 10. Con trỏ tổng hợp là gì?
- 11. Vòng lặp PL/SQL thông qua con trỏ
- 12. Vòng lặp và con trỏ liên quan như thế nào?
- 13. Điểm yếu của Android khi không đóng con trỏ
- 14. Con trỏ chuột CSS ... xoay con trỏ?
- 15. Con trỏ so với vòng lặp while - SQLServer
- 16. Con trỏ tĩnh có phải là con trỏ mạnh không?
- 17. Ý nghĩa của những biến động này với con trỏ trong C là gì?
- 18. Chuyển đổi trình vòng lặp thành con trỏ?
- 19. Sự khác biệt giữa con trỏ và biến con trỏ là gì?
- 20. Mảng của con trỏ
- 21. Cross-trình duyệt 'con trỏ: con trỏ'
- 22. Con trỏ trỏ tới con trỏ số học
- 23. Con trỏ cuộn PDO là gì?
- 24. Con trỏ lơ lửng là gì
- 25. Con trỏ trỏ tới con trỏ với argv
- 26. Sự khác nhau giữa con trỏ float và địa chỉ con trỏ int là gì?
- 27. Giá trị con trỏ của con trỏ hàm đại diện cho cái gì?
- 28. x86 nơi điểm con trỏ ngăn xếp?
- 29. Con trỏ trong khi vòng lặp trả về mọi giá trị nhưng cuối cùng
- 30. Việc xóa con trỏ của cấu trúc cũng sẽ xóa con trỏ trong cấu trúc?
Bạn có nghĩa là vòng lặp while trong mã phía máy khách không? Bạn có thể cung cấp ví dụ không? – Kev
Tôi đồng ý với Kev, bạn có thể giải thích về những gì bạn đang cố gắng thực hiện không? –
Tôi nghĩ tác giả câu hỏi có nghĩa là bạn có thể mô phỏng một vòng lặp bằng cách đặt các mục được lặp lại vào một bảng tạm thời. Sau đó bạn có thể 'vòng lặp' qua các mục có vòng lặp Đếm (1) <> 0. Trên mỗi vòng lặp, bạn xử lý một mục và loại bỏ nó khỏi bảng tạm thời. WHERE loop so với CURSOR do đó là một câu hỏi hay về hiệu suất và các ưu điểm khác. – redcalx