SQL de TOP kullanılan sorguların performans sorunu

Büyük tablolar üzerinde sorgu yazıyorsanız ve TOP deyimini kullanıyorsanız yaşadığınız performans sorunlarını çözmek için ROW_NUMBER fonksiyonunu kullanabilirsiniz. ROW_NUMBER fonksiyonu sizin belirlediğiniz bir kriter üzerinden sorguda dönen değerleri sıralayıp sıra numarası verir böylelikle istenilen sıra numarasındaki kayıtlara ulaşılabilirsiniz.
TOP ile kullanım;
SELECT
ID,
NAME
FROM
TABLE1
WHERE
ID =
(
SELECT
TOP 1 ID
FROM
TABLE1
ORDER BY
RECORD_DATE DESC
)
ROW_NUMBER ile kullanım;
SELECT
ID,
NAME
FROM
TABLE1
WHERE
ID =
(
SELECT
T2.ID
FROM
(
SELECT
ID,
(ROW_NUMBER() OVER (ORDER BY RECORD_DATE DESC)) ROW_NUMBER
FROM
TABLE1
)T2
WHERE
ROW_NUMBER = 1
)




mahmut er yazdı : 10/03/11 4:02 PM
bende onu diyorum ROW_NUMBER diyorum :) Biz bunu düşünmüşüz :P