sql >> Databáze >  >> RDS >> Sqlserver

Myšlenky k edicím SQL Server 2019

Když se po několika letech vydávám na svůj první PASS Summit, je těžké udržet své nadšení z nejnovější verze SQL Serveru. Pomohl jsem Bobu Wardovi (@bobwardms) s technickými úpravami jeho nejnovější knihy „SQL Server 2019 Revealed“ a aktivně jsem spolupracoval s produktovými týmy a mými kolegy z MVP během cyklů CTP a RC. Zúčastnil jsem se dokonce velmi exkluzivní události SQL Server 2019 Airlift v Redmondu v prvním říjnovém týdnu – a přestože bylo příliš pozdě poskytnout zpětnou vazbu, která by ovlivnila RTM, učinil jsem několik konstruktivních návrhů, které snad uvidíme v CU ( nebo až vNext).

Produkt ještě není vydán, alespoň v době psaní tohoto článku, ale začali utvářet, které funkce (a je jich hodně) budou k dispozici ve kterých edicích. Jak si možná vzpomínáte, v SQL Server 2016 SP1 zpřístupnili všechny funkce programovacího povrchu všem edicím a mnoho (ale určitě ne všechny) funkcí výkonu a dostupnosti. Napsal jsem o tom v příspěvku nazvaném „Big Deal:SQL Server 2016 Service Pack 1“. Bylo to velmi vzrušující období a chtěl jsem se jen podělit o pár myšlenek o hitech a neúspěších v nejnovější verzi.

Požadavky

  • Accelerated Database Recovery je ve standardní verzi . To pro mě bylo snadno největším překvapením, protože jsem si myslel, že to bude funkce Enterprise Edition. Je to funkce dostupnosti, protože může drasticky zkrátit dobu převzetí služeb při selhání a obnovení, a lze ji také považovat za výkonovou funkci, protože nyní můžete použít stejný místní úložiště verzí pro věci jako RCSI namísto sdílení úložiště verzí v databázi tempdb. Můžete dokonce umístit místní úložiště verzí do vlastní skupiny souborů, což nebylo možné, když jsem o této funkci psal v březnu. Mít toto k dispozici ve všech edicích je fantastické, ale musíte se ujistit, že své pracovní zatížení otestujete proti základnímu stavu.
  • Transparent Data Encryption (TDE) je nyní ve standardní verzi . S ohledem na to, že dokumentace není konečná, je to pro mnoho obchodů skvělá změna a dává smysl, že tak důležitý bezpečnostní prvek by neměl být rozdílem u nejdražší edice. Není to ani funkce výkonu, ani dostupnost a základní, rozumné zabezpečení dat by IMHO nemělo stát nic extra. Nike Neugebauer souhlasí. Always Encrypted a další funkce, jako je Row-Level Security a Dynamic Data Masking, jsou dostupné ve všech edicích, ale ne vždy zapadají do řešení „snadným tlačítkem“, které zákazníci hledají.
  • Skalární vložení UDF je ve všech edicích – i Express . To je skvělá funkce, která v podstatě skryje všechen špatný výkon, který jste získali z neefektivních skalárních uživatelsky definovaných funkcí (poprvé jsem o této funkci psal před rokem). Překvapuje mě, že toto není pouze pro Enterprise – mohlo to být jako indexovaná zobrazení, kde je funkce dostupná všude, ale chování je lepší (alespoň ve výchozím nastavení) v Enterprise Edition. Jsem rád, že v tomto případě budou mít prospěch všichni.
  • Nastavení poskytuje lepší doporučení v reálném světě . Toto není položka na seznamu funkcí sama o sobě, ale existují některé nové možnosti a návrhy týkající se MAXDOP a min/max paměti serveru, které považuji za skvělé doplňky a umožní lidem lépe konfigurovat své instance od začátku:

    Nová obrazovka MaxDOP v nastavení ( kliknutím zvětšíte)

    Nová obrazovka paměti v nastavení ( kliknutím zvětšíte)

    Kdyby jen mohli přidat možnosti pro další věci, které jsou po instalaci rušivé, jako je Uzamknout stránky v paměti, změnit výchozí prahovou hodnotu ceny pro paralelismus, zadat příznaky trasování při spuštění (jako 3226!), zvýraznit neoptimální nastavení plánu napájení a povolit Skupiny dostupnosti přímo namísto použití Configuration Manager. A možná by mohli odstranit to otravné varování o firewallu; je to vždy stejné a alespoň pro mě to nikdy nebylo smysluplné ani užitečné v žádném případě.

Slečny

  • Stále neustoupí limitu 128 GB pro standardní verzi , navzdory mnoha žádostem (jako je tento od Erika Darlinga). Není to můj původní nápad a nezjednodušilo by to licencování nebo vymáhání, ale limity paměti mohly být proveden v poměru k počtu licencovaných jader. Tímto způsobem je váš limit paměti založen na tom, kolik jste utratili za licencování, nikoli na nějakém libovolném limitu, který se před 5 lety rozhodl v konferenční místnosti.

    Brent Ozar (@BrentO) také hovořil o „dokonalé bouři “ zahrnujících přidělení paměti ve Standard Edition, a docela souhlasím – myslím, že zákazníci by rádi zaplatili prémii za přechod z CAL na základní licencování ve Standard Edition, pokud by to nyní znamenalo, že by mohli využívat více (nebo dokonce celou) svou paměť.
  • TempDB optimalizovaná pro paměť je pouze Enterprise Edition , zatímco další technologie In-Memory Database, jako jsou Memory-Optimized Tables a Hybrid Buffer Pool, jsou dostupné ve Standard Edition. Mám pocit, že tato funkce je jakýmsi hybridem mezi výkonem a dostupností; alespoň větší rovnováha než, řekněme, UDF inlining. Pomalé funkce nechávají lidi čekat; zahlcený tempdb může téměř doslova zničit vaši instanci. Také mám pocit, že zákazníci Enterprise mají tendenci mít k řešení problému více a lepšího hardwaru, než si mohou dovolit menší obchody. Zákazníci, kteří si vyberou standardní verzi, nemusí nutně mít úspory sedět a čekat na zapsání šeků.

    Jedním z návrhů, které jsem měl ohledně této funkce, bylo, že by během instalace měly existovat argumenty příkazového řádku a/nebo zaškrtávací políčko uživatelského rozhraní, aby byla tato funkce povolena ihned po instalaci nebo upgradu. Tím by se předešlo přerušení po instalaci, protože jediný způsob, jak funkci aktivovat, je provést restart služby. Důvodem, proč není ve výchozím nastavení zapnutá, je to, že existují vzory zátěže, u kterých nebude výhoda zřejmá, a některé scénáře prolomení zahrnující transakce a další databáze s tabulkami optimalizovanými pro paměť, takže chtějí, abyste otestovali svou zátěž a ujistili se, že pozorují správné typy sporů a že přínos existuje. Ale co když jsem to již udělal na jiném systému se stejnou zátěží?

Rozlučka myšlenek

I když to může znít, že si stěžuji, stále jsem z této verze a všeho, co nabízí, velmi nadšený. Očekávám, že dostupnost bude oznámena na Ignite i PASS Summitu, takže možná budete mít bity RTM v ruce, než budete číst toto.


  1. Vytvořte kontingenční tabulku pomocí PostgreSQL

  2. Zastaralé:mysql_connect()

  3. PostgreSQL 13:LIMIT … S VAZBAMI

  4. Jaké jsou kroky v návrhu databáze?