Czy warto używać pętli while zamiast kursora? Jakie są zalety/wady kursorów?Kursor w pętli - jakie są zalety/wady kursorów?
Odpowiedz
Niektóre z nich zależy od DBMS, ale ogólnie:
za:
przewyższają pętli, jeśli chodzi o rząd po rzędzie przetwarzania
Works dość dobrze z dużych zbiorów danych
Wady:
Nie skalować oraz
zużywają więcej zasobów serwera
wzrostem obciążenia na tempdb
Może powodować nieszczelności, jeśli są niewłaściwie używane (np. Otwórz bez odpowiedniego zamknięcia)
Chciałbym zapytać, co robisz z kursorem/pętlą while.
Jeśli aktualizujesz lub zwracasz dane, dlaczego nie używasz właściwej klauzuli WHERE. Znam ludzi, którzy twierdzą, że nigdy nie powinieneś używać kursorów.
Obserwuję ten kawałek rada:
[...], co jest lepsze: kursory lub pętle chwilę? Znowu, to naprawdę zależy od twojej sytuacji. Niemal zawsze używam kursora, aby przechodzić po rekordach, gdy jest to konieczne. Format kursora jest nieco bardziej intuicyjny dla mnie i, , ponieważ używam tylko konstruktów do przechodzenia przez zestaw wyników raz, to ma sens, aby użyć kursora FAST_FORWARD . Pamiętaj, że typ używanego kursora będzie miał ogromny wpływ na wydajność pętli na wydajność pętli .
— Tim Chapman w Comparing cursor vs. WHILE loop performance in SQL Server 2008
prowadzi link artykuł zawiera proste przykłady jak wdrożyć każde podejście.
Niestety, treść hiperłącza nie jest już dostępna. Myślę, że to jest artykuł: http://www.techrepublic.com/blog/the-enterprise-cloud/comparing-cursor-vs-while-loop-performance-in-sql-server-2008/1741/ –
@PawelKrakowiak Naprawiono, dzięki. –
- 1. Kursor pętli w Oracle
- 2. Jakie są różne sposoby zastąpienia kursora?
- 3. Python pyodbc kursor vs kursor bazy danych
- 4. python mysqldb wiele kursorów dla jednego połączenia
- 5. Indeksowane zakresy kursorów DB dla wielu właściwości
- 6. Kilka pytań o SQLite kursorów bazy danych w Android
- 7. Ustawianie kolorów kursorów Vim?
- 8. Jakie są sekundy w regionie?
- 9. Jakie są rzeczywiste zalety wzoru gościa? Jakie są alternatywy?
- 10. Jak załadować niestandardowy kursor w Firemonkey?
- 11. Jakie są zalety coroutines?
- 12. Jakie są domyślne repozytoria?
- 13. Jakie są poziomy DOM?
- 14. Jakie są zalety VistaDB
- 15. Jakie są zalety JRebel?
- 16. Jakie są zalety NSBinaryStoreType?
- 17. Jakie są alternatywy ClickOnce?
- 18. Jakie są chińskie kodowanie?
- 19. Jakie wtyczki kompilatora scala są dostępne?
- 20. Jakie są jednostki FB.getAuthResponse(). ExpiresIn?
- 21. Jakie są standardowe wyjątki Scala?
- 22. Jakie są konwencje nazewnictwa neo4j?
- 23. Jakie są specyfikacje Motion JPG?
- 24. Jakie są "wytyczne" C++ GSL?
- 25. Jakie są przykłady interfejsów Go?
- 26. Integer promocja - jakie są kroki
- 27. Jakie są makefile - make install
- 28. Jakie są nieudokumentowane funkcje Angular?
- 29. Jakie są alternatywy dla IRB?
- 30. Jakie są wady Stackless Python?
Masz na myśli pętlę po stronie klienta? Czy możesz podać przykład? – Kev
Zgadzam się z Kev, czy mógłbyś wyjaśnić, co próbujesz osiągnąć? –
Myślę, że autor pytania oznacza, że można symulować pętlę, umieszczając elementy do zapętlenia w tabeli tymczasowej. Następnie możesz "zapętlić" nad przedmiotami pętlą WHILE Count (1) <> 0. W każdej pętli przetwarzasz element i usuwasz go z tabeli tymczasowej. GDZIE pętla kontra CURSOR jest zatem dobrym pytaniem dotyczącym wydajności i innych zalet/wad. – redcalx