Докато се впускам в първата си среща PASS Summit от няколко години, ми е трудно да сдържа вълнението си от най-новата версия на SQL Server. Помогнах на Боб Уорд (@bobwardms) с техническото редактиране на най-новата му книга „SQL Server 2019 Revealed“ и бях активно ангажиран с продуктовите екипи и моите MVP колеги през циклите на CTP и RC. Дори присъствах на изключително ексклузивното събитие на SQL Server 2019 Airlift в Редмънд през първата седмица на октомври – и въпреки че беше твърде късно да дам обратна връзка, която би повлияла на RTM, направих няколко конструктивни предложения, които се надяваме да видим в CU ( или най-късно vNext).
Продуктът все още не е пуснат, поне към момента на писане, но те започнаха да определят кои функции (а има много от тях) ще бъдат налични в кои издания. Както може би си спомняте, обратно в SQL Server 2016 SP1, те отвориха всички функции на повърхността за програмиране за всички издания и много (но със сигурност не всички) функции за производителност и наличност. Написах за това в публикация, озаглавена „Голяма сделка:SQL Server 2016 Service Pack 1“. Това беше много вълнуващо време и просто исках да споделя някои мисли за попаденията и пропуските в най-новата версия.
Посещения
- Ускореното възстановяване на база данни е в стандартно издание . Това беше най-голямата изненада за мен, тъй като мислех, че ще бъде функция за Enterprise Edition. Това е функция за наличност, тъй като може драстично да намали времето за преодоляване на отказ и възстановяване и може да се счита за функция за производителност, тъй като вече можете да използвате същото локално хранилище на версии за неща като RCSI, вместо да споделяте хранилището на версиите в tempdb. Можете дори да поставите локалното хранилище на версиите в неговата собствена файлова група, което не беше опция, когато писах за функцията през март. Наличието на това във всички издания е фантастично, но трябва да сте сигурни, че тествате работното си натоварване спрямо изходно ниво.
- Прозрачното криптиране на данни (TDE) вече е в стандартно издание . Имайки предвид, че документацията не е окончателна, това е страхотна промяна за много магазини и е логично, че такава важна характеристика за сигурност не трябва да бъде разграничител за най-скъпото издание. Това не е нито функция за производителност, нито функция за наличност, а основната, разумна защита на данните не трябва да струва допълнително, IMHO. Nike Neugebauer се съгласява. Винаги шифровани и други функции като сигурност на ниво ред и динамично маскиране на данни са налични във всички издания, но те не винаги се вписват в решението за „лесен бутон“, което клиентите търсят.
- Вграждане на скаларен UDF е във всички издания – дори Express . Това е страхотна функция, която по същество скрива цялата лоша производителност, която сте получавали от неефективни скаларни дефинирани от потребителя функции (за първи път писах за тази функция преди година). Изненадан съм, че този не е само за Enterprise – можеше да е като индексирани изгледи, където функционалността е достъпна навсякъде, но поведението е по-добро (поне по подразбиране) в Enterprise Edition. Радвам се, че всички ще се възползват в този случай.
- Настройката предоставя по-добри препоръки в реалния свят . Това не е елемент от списъка с функции, сам по себе си, но има някои нови опции и предложения около MAXDOP и min/max сървърна памет, които според мен са страхотни допълнения и ще позволят на хората да конфигурират по-добре своите екземпляри от самото начало:
Нов екран MaxDOP в настройка ( щракнете за увеличаване)
Нов екран на паметта в настройката ( щракнете за увеличаване)
Сега, само ако можеха да добавят опции за други неща, които са разрушителни след инсталирането, като например заключване на страници в паметта, промяна на прага на разходите по подразбиране за паралелизъм, посочване на флагове за проследяване при стартиране (като 3226!), подчертаване на неоптимални настройки на плана за захранване и активиране Групи за наличност директно, вместо да използвате Configuration Manager след факта. И може би биха могли да премахнат това досадно предупреждение за защитната стена; винаги е едно и също и поне за мен никога не е било смислено или полезно в нито един сценарий.
Пропуски
- Те все още няма да отстъпят от ограничението от 128 GB за стандартно издание , въпреки многото искания (като тази от Ерик Дарлинг). Това не е моята първоначална идея и няма да направи лицензирането или прилагането по-лесно, но ограниченията на паметта могат се прави спрямо броя на лицензираните ядра. По този начин ограничението ви за памет се основава на това колко сте похарчили за лицензиране, а не на някакъв произволен лимит, определен в конферентна зала някъде преди 5 години.
Брент Озар (@BrentO) също говори за „перфектната буря " включващи предоставяне на памет в Standard Edition и съм напълно съгласен – мисля, че клиентите с удоволствие биха платили премията за преминаване от CAL към лицензиране на ядрото на Standard Edition, ако сега това означаваше, че могат да използват повече (или дори цялата) от паметта си.
- Оптимизирана за памет TempDB е само Enterprise Edition , докато други технологии за база данни в паметта, като оптимизирани за памет таблици и хибриден буферен пул, са налични в стандартно издание. Смятам, че тази функция е нещо като хибрид между производителност и наличност; поне повече баланс, отколкото, да речем, вграждането на UDF. Бавните функции просто карат хората да чакат; претоварен tempdb може почти буквално да свали вашия екземпляр. Също така смятам, че клиентите на Enterprise са склонни вече да имат повече и по-добър хардуер за решаване на проблема, отколкото по-малките магазини могат да си позволят. Клиентите, които изберат Стандартно издание, не е задължително да имат спестяванията, които чакат да напишат чекове.
Едно от предложенията, които имах около тази функция, беше, че трябва да има аргументи на командния ред и/или квадратче за отметка в потребителския интерфейс по време на настройката, за да активирате тази функция веднага след инсталиране или надстройка. Това ще избегне прекъсване след инсталацията, тъй като единственият начин да активирате функцията е да извършите рестартиране на услугата. Причината, поради която не е включена по подразбиране, е, че има модели на работно натоварване, при които ползата няма да е очевидна, и някои сценарии за прекъсване, включващи транзакции и други бази данни с оптимизирани за памет таблици, така че те искат да тествате работното си натоварване и да се уверите, че наблюдават правилните видове спорове и че ползата е налице. Но какво ще стане, ако вече съм го правил на друга система със същото натоварване?
Мисли за раздяла
Въпреки че може да звучи така, сякаш се оплаквам, все още съм много развълнуван от тази версия и всичко, което може да предложи. Очаквам наличността да бъде обявена както на Ignite, така и на PASS Summit, така че може да имате RTM битовете в ръка, докато прочетете това.