sql >> Database >  >> RDS >> Sqlserver

Een groot probleem:SQL Server 2016 Service Pack 1

Nou, ik kan niet beweren dat je het hier als eerste hoorde, aangezien het vandaag werd aangekondigd door Scott Guthrie (@ScottGu ) bij Verbinden(); // 2016 en ook op de blog van het SQL Server-team , maar SQL Server 2016 Service Pack 1 is de build van SQL Server die er uiteindelijk voor zorgt dat bijna iedereen upgradet van alle eerdere versies.

Waarom? Nou, Ik hoop dat je gaat zitten:

Veel Enterprise-functies zijn nu beschikbaar in Standard, Web en Express.

Dit is een GROTE DEAL.

Ik ben er al lang een voorstander van om het oppervlak in alle edities hetzelfde te maken en elke editie te beperken tot hardware-/resourcelimieten. Dit laatste is al het geval met Express Edition (1 CPU, 1 GB geheugen, 10 GB databasegrootte) en Standard Edition (24 cores, 128 GB), maar functies zelf bestaan ​​daar gewoon niet. Hoewel ze wat functionaliteit hebben toegevoegd rond Beschikbaarheidsgroepen (beperkte ondersteuning in Standard Edition en de mogelijkheid om af te zien van een domein), lijken veel van de functies die momenteel alleen Enterprise zijn, helemaal niet Enterprise-y te zijn. Hier zijn enkele redenen en gevolgen van het alleen in Enterprise plaatsen van zoveel kritieke functies, althans naar mijn mening:

  1. Gegevensbeveiliging lijkt de laatste jaren op de achtergrond te zijn geraakt. Het zou in alle edities moeten staan; Ik was teleurgesteld toen Always Encrypted werd uitgebracht en beperkt was tot Enterprise. De impliciete boodschap was dat als je een klein bedrijf bent, je creditcardgegevens niet hoeft te kunnen versleutelen (ze zeggen hetzelfde met Transparent Data Encryption, maar Always Encrypted is een veel waardevoller aanbod).
  2. Programmeerbaarheidsfuncties dat maanlicht als prestatiekenmerken - zoals gegevenscompressie en -partitionering - aantoonbaar aan de Enterprise-kant van de dingen zijn, hoewel ik altijd heb gevoeld dat de goede plek van gegevenscompressie het kleine bedrijf is dat het zich niet kan veroorloven om gewoon geheugen toe te voegen, snellere schijven te kopen, of upgrade naar Enterprise.

    Als een leverancier in de huidige versies wil profiteren van compressie of partitionering, moet hij er rekening mee houden dat niet al zijn klanten Enterprise Edition zullen gebruiken. Evenzo willen klanten dezelfde codebase gebruiken in hun QA-, productie- en ontwikkelomgevingen, maar die hebben misschien ook niet allemaal dezelfde editie. Zowel leveranciers als klanten willen ook functies kunnen gebruiken die zowel in de cloud als in de box beschikbaar zijn, ongeacht het niveau of de editie. Momenteel moeten ze ofwel meerdere codebases schrijven, of zich gewoon overgeven aan de kleinste gemene deler.
  3. Aannemingspercentages zijn laag omdat, in veel opzichten, Standard Edition-upgrades de afgelopen jaren verre van aantrekkelijk zijn geweest, wat betekent dat veel mensen tevreden zijn met hun Standard-exemplaren van 2012. Ze hebben gewoon niet echt veel baat bij de overstap naar een recentere versie en in veel gevallen wegen de kosten van het testen van een migratie en het afhandelen van regressies op tegen de voordelen.

Collega's zoals Brent Ozar en Steve Jones hebben soortgelijke gedachten gehad - met het argument dat de beste functies om inkomstenredenen uitgesloten blijven van Standard en lagere edities, maar dit is niet de manier waarop het zou moeten zijn.

En nu niet meer.

Functie Standaard / Web Express LocalDB
Altijd versleuteld
Gegevens vastleggen wijzigen
Kolomwinkel
Gegevenscompressie
Database-snapshots
Dynamische gegevensmaskering
Fijne controle
In-Memory OLTP
Meerdere Filestream-containers
Partitionering
PolyBase
Beveiliging op rijniveau

1. Beperkt tot 32 GB per instantie op Standard Edition, 352 MB op Express.
2. Beperkt tot 32 GB per database op Standard Edition, 352 MB op Express.

Ik heb hier geen bewijs van, maar ik geloof dat Microsoft eindelijk heeft geluisterd vanwege de lage acceptatiegraad van SQL Server 2016 – en in het bijzonder Standard Edition – . Misschien hebben ze zich gerealiseerd dat het niet werkt om zoveel boeiende functies alleen beschikbaar te maken in Enterprise Edition. Je kunt geen bloed uit een steen halen, zeggen ze.

De tabel hier toont de reeks functies die nu buiten Enterprise Edition zijn ingeschakeld (sommige functies waren al aanwezig in Standard, maar ik had geen goede manier om dat te illustreren). Het hoeft alleen een tabel te zijn vanwege drie functies die niet werken op Express en/of LocalDB (vanwege SQL Server Agent, machtigingen of externe afhankelijkheden).

Dat is mijn snelle spiekbriefje; controleer de documentatie voor de laatste updates. Ik heb de meeste functies getest en ze werken zoals je zou verwachten - niet om de inspanning te bagatelliseren, maar ze hebben gewoon de controles verwijderd die functionaliteit blokkeerden op basis van editie. Ik dacht dat ik ze zou laten struikelen door verder te testen dan de basis, zoals incrementele statistieken over gepartitioneerde tabellen en combinaties zoals Columnstore over een gecomprimeerde tabel, om te zien of ze iets gemist hebben. Maar nee - alles in de tabel werkte net alsof ik Enterprise Edition draaide.

Dat gezegd hebbende, lag de focus hier op een consistent programmeeroppervlak (CPSA). Dus nee, u krijgt niet ineens alle voordelen van Enterprise Edition gratis of met een flinke korting – zie hieronder voor functionaliteit die niet werkt. En sommige van de bovenstaande functies kunnen nog steeds beperkt zijn op basis van de editie.

Desalniettemin biedt dit een geweldige oplossing voor #2 hierboven:als veel van deze functies in alle edities werken, zelfs als ze verschillende schaalniveaus ondersteunen, wordt het voor zowel klanten als leveranciers gemakkelijker om oplossingen te bouwen die werken, waar ze ook zijn. zijn ingezet. Dit wordt een enorme overwinning, zelfs buiten het pure voordeel om eindelijk dingen als Always Encrypted en partitionering overal te kunnen gebruiken.

Wat onderscheidt edities nog?

In wezen, als het eerder een operationele of beschikbaarheidsfunctie op Enterprise-niveau was, of binnen een bepaalde set prestatiefuncties, blijft het als zodanig. Het volgende is geen volledige lijst, maar geeft waarschijnlijk de meeste grote verschillen weer:

  • Beschikbaarheidsfuncties zoals online bewerkingen, fragmentarisch herstel en volledig functionele beschikbaarheidsgroepen (bijv. alleen-lezen replica's) zijn nog steeds alleen voor ondernemingen. Ik wens de REBUILD + (ONLINE = ON) syntaxis zou kunnen werken als een no-op in lagere edities met een waarschuwing in plaats van een fout te retourneren, maar ik kan hier niet te kieskeurig zijn.
  • Prestatiefuncties zoals parallellisme nog steeds niet werkt in Express Edition (of LocalDB). Automatisch geïndexeerd weergavegebruik zonder NOEXPAND hints en geavanceerde functies zoals hot-add geheugen/CPU blijven alleen beschikbaar in Enterprise.
  • Operationele kenmerken zoals Resource Governor, Extensible Key Management (EKM) en Transparent Data Encryption blijven alleen Enterprise Edition. Andere, zoals back-upcodering, back-upcompressie en bufferpooluitbreiding, blijven werken in Standard, maar werken nog steeds niet in Express.
  • SQL Server-agent is nog steeds niet beschikbaar in Express en LocalDB. Als gevolg hiervan, en zoals hierboven vermeld, zal Change Data Capture niet werken. Cross-server Service Broker blijft ook niet beschikbaar in deze edities.
  • In-Memory OLTP en PolyBase worden ondersteund in Express, maar niet beschikbaar in LocalDB.
  • Virtualisatierechten zijn niet veranderd en zijn nog steeds veel waardevoller in Enterprise Edition met Software Assurance.
  • Bronlimieten voor downlevel-edities dezelfde blijven . Het lijkt erop dat de bean-counters nog steeds de bovenste geheugenlimiet in Standard Edition beheersen, dus dit is nog steeds 128 GB (terwijl Enterprise Edition nu 24 TB is). Persoonlijk denk ik dat deze bovengrens bij elke nieuwe versie (de wet van Moore) incrementele winst moet opleveren, omdat ik vind dat de standaardeditie zo duur is dat de geheugenlimieten nooit zo gevaarlijk dicht bij de bovengrens van een goed uitgeruste laptop mogen liggen. Maar ik neem wat ik kan krijgen, en als je vastzit aan de Standard Edition en schaalvergroting is vereist, kun je nu de bovenstaande Enterprise-functies gebruiken voor meerdere Standard Edition-boxen of -instanties, in plaats van te proberen op te schalen.

Samenvatting

Dit is een gedurfde zet van Microsoft en ik kan zeker zien hoe dit de standaardverkopen zal verhogen zonder de bedrijfsverkopen te kannibaliseren. Standard Edition-klanten kunnen deze functies gebruiken om hun codebases te consolideren en, in veel scenario's, oplossingen te bouwen die betere prestaties bieden. En voor degenen die al genieten van alle voordelen van Enterprise Edition:dit is misschien niet zo interessant voor u, maar er zijn ook een heleboel nieuwe functies beschikbaar in alle edities van SP1 . Dus ongeacht welke editie je nu gebruikt, je hebt echt geen excuus om vast te houden aan die oude versie van SQL Server.

Ga upgraden naar SQL Server 2016 SP1!


  1. MySQL:selecteer alle datums in een bereik, zelfs als er geen records aanwezig zijn

  2. De ANSI_NULLS-instelling van een database vinden in SQL Server (T-SQL)

  3. Wat is er nieuw in Access 2016? Is het de moeite waard om te upgraden?

  4. Reader-oplossingen voor de uitdaging van Special Islands