Skip to content

Parametryzacja zapytań SQL w wersji enova 2110

Wraz z wersją enova 2110 wprowadzono parametryzację zapytań SQL, dzięki której serwer SQL wydajniej obsługuje zapytania. Zamiast kompilować każde zapytanie z osobna, skompilowane zapytania wykonywane są przez serwer z tzw. planu zapytań. Zysk z parametryzacji nie jest widoczny na pojedynczych zapytaniach, ale dla wielu zapytań daje znaczący wzrost wydajności serwera SQL, szczególnie w przypadku obciążenia serwera nie tylko przez enova365, ale także przez inne aplikacje (lepsze wykorzystanie pamięci).

 

W przypadku starszych baz danych, które do tej pory nie zostały skonwertowane na UNICODE, wprowadzenie parametryzacji zapytań SQL implikuje konieczność konwersji między typami NVARCHAR i VARCHAR. Powoduje to narzut po stronie serwera SQL, znacząco obniżający jego wydajność. MS SQL akceptuje zapytanie z deklaracją typu NVARCHAR (UNICODE) do kolumny typu VARCHAR (ANSI), ale wykonuje takie zapytania bardzo nieefektywnie (nie wykorzystuje indeksów). Koszt nie zawsze jest zauważalny dla pojedynczych zapytań, nawet do ciężkich tabel takich jak ChangeInfos. Jednak w przypadku wyciągania na listy własności wyliczanych (np. często stosowany worker FirstChangeInfo/LastChangeInfo), negatywny wpływ nadmiarowej konwersji typów staje się zwielokrotniony bo kosztowne zapytania wysyłane są dla każdego wyświetlanego na liście wiersza.

 

W związku z powyższym zdecydowanie rekomendujemy konwersję starych baz danych do UNICODE. enova365 od wersji 19XX domyślnie zakłada nowe bazy danych w postaci UNICODE. Utrzymanie zgodności z bazami ANSI będzie coraz trudniejsze. Konwersja do UNICODE spowoduje istotny wzrost wielkości bazy, ale pod kątem wydajności i utrzymania instalacji jest stanowczo zalecana.

 

Z wyrazami szacunku

SONETA

Share on facebook
Facebook