FASTFIRSTROW не се поддържа в SQL Server 2012

Това е един от hint-те отнасящи се до таблици (table hint). Той казва на SQL Server query optimizer така да си свърши работата, че да върне първият ред от по възможно най-бързият начин. В общият случай този hint трябва да се ползва само ако знаем, че заявката ще върне точно един ред.

За съжаление в SQL Server 2012 вече не се поддържа. Колегите, които са попадали на база данни с тази версия сигурно вече са се сбъркали с проблема. Той се проявява, когато се изпълни t-sql код или вече написана съхранена процедура съдържаща hint-а.

Хубавата новина е, че има алтернатива. Това е hint на ниво заявка (query hint): OPTION (FAST n), където N трябва да е 1 в нашият случай.

Тук има уловка за жалост. В под заявки това не работи. Ето и пример.

Когато напишем: SELECT NAME FROM PRODUCTS WHERE ID=1 OPTION(FAST 1) всичко е Ок, но заявката SELECT (SELECT NAME FROM PRODUCTS WHERE ID=1 OPTION(FAST 1)) as ProductName не работи. Дава грешка “Incorrect syntax near the keyword ‘OPTION’.”.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s