Sargable - Sargable

Жылы реляциялық мәліметтер базасы, сұраудағы шарт (немесе предикат) деп аталады сарказмалық егер ДББЖ мотор артықшылығын қолдана алады индекс сұраныстың орындалуын тездету үшін. Терминнің жиырылуынан шыққан ARGument ABLE іздеу.

Сұрақ сарғаюға жатпаса, а деп аталады сарқылмаған сұрау және әдетте сұрау уақытына кері әсер етеді, сондықтан қадамдардың бірі сұранысты оңтайландыру оларды мысқылға айналдыру болып табылады. Эффект индексте анықталған нақты беттер тізіміне секірудің орнына индексі жоқ кітаптан белгілі бір терминді іздеуге ұқсас.

Жасайды типтік жағдай SQL сұранысы баған мәнінде жұмыс істейтін функцияны WHERE сөйлеміне қосу сарқылмайды. «WHERE» сөйлемі сарготтылықтың маңызды болатын жалғыз сөйлемі емес; ол сондай-ақ ТАПСЫРЫС, БІЛІМ БЕРУ және БІРІНШІ сөйлемдерге әсер етуі мүмкін. Екінші жағынан, SELECT сөйлемі өнімділікке кері әсерін тигізбей, сарказмды емес өрнектерді қамтуы мүмкін.

  • Зарядталатын операторлар: =, >, <, >=, <=, АРАСЫ, ЛАЙК, IS [ЖОҚ] ЖОҚ
  • Зарядталатын операторлар өнімділікті сирек жақсартатын: <>, IN, НЕМЕСЕ, ЖОҚ IN, ЖОҚ ЛАЙК

Қарапайым мысал

ҚАЙДА сөйлемдер әдетте оператордың сол жағында өріс мәндері, ал оператордың оң жағында скаляр мәндер немесе өрнектер болады.

Мазасыз емес:

ТАҢДАУ*КІМДЕНmyTableҚАЙДА11.7<SQRT(myIntField)

Бұл таңқаларлық емес, себебі myIntField функцияға ендірілген. Егер myIntField-де қандай да бір индекстер болса, оларды пайдалану мүмкін емес. Одан басқа, SQRT() myTable-дағы барлық жазбаларға шақырылатын болады.

Sargable нұсқасы:

ТАҢДАУ*КІМДЕНmyTableҚАЙДАmyIntField>11.7*11.7

Бұл таңқаларлық, себебі myIntField функциясы ЕМЕС, сондықтан myIntField-да кез-келген қол жетімді индекстерді қолдануға жарамды етеді. Сонымен қатар, өрнек кестедегі әрбір жазба үшін емес, тек бір рет бағаланады.

Сондай-ақ қараңыз

Әдебиеттер тізімі

  • SQL өнімділігін реттеу Питер Гулутзан, Труди Пелцер (Аддисон Уэсли, 2002) ISBN  0-201-79169-2 (2 тарау, Қарапайым «іздеу» )
  • Microsoft SQL Server 2012 Интерналы Кален Делани, Коннор Каннингэм, Джонатан Кехайяс, Бенджамин Неварес, Пол С.Рандал (О'Рейли, 2013) ISBN  978-0-7356-5856-1 (11-тарау, Сұраны оңтайландырғыш)

Сыртқы сілтемелер