Pozdrav svima. Evo jednog za istinske ljubitelje kurioziteta i specifičnih problema SQL Servera. Naime, imam kursor:
i u nastavku vrlo elementarnu operaciju u while petlji. Kada izvršim proceduru, ona se vrti i vrti i vrti... i na kraju ništa ne napravi.
Međutim, ako poslije SELECT-a stavim TOP 10000000 (treba li uopšte reći, view iz kojeg selektujem ima znatno manje recorda), procedura se bez problema izvrši za cca 3 sekunde.
Ima li iko ideju šta i zašto se dešava?
Code:
DECLARE myCursor CURSOR
FOR
SELECT customerId, readingId, price, categoryDiscount, readValue, flatDiscount, consumption
FROM ViewBillingDataPreliminary
ORDER BY customerId, readingId
DECLARE myCursor CURSOR
FOR
SELECT customerId, readingId, price, categoryDiscount, readValue, flatDiscount, consumption
FROM ViewBillingDataPreliminary
ORDER BY customerId, readingId
i u nastavku vrlo elementarnu operaciju u while petlji. Kada izvršim proceduru, ona se vrti i vrti i vrti... i na kraju ništa ne napravi.
Međutim, ako poslije SELECT-a stavim TOP 10000000 (treba li uopšte reći, view iz kojeg selektujem ima znatno manje recorda), procedura se bez problema izvrši za cca 3 sekunde.
Ima li iko ideju šta i zašto se dešava?