microsoft sql server 2016 - wug
TRANSCRIPT
![Page 1: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/1.jpg)
Microsoft SQL Server 2016
![Page 2: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/2.jpg)
2
Mission-critical performance
Operational analyticsIn-Memory OLTP
Query StoreNative JSON
Temporal TablesAlways encrypted
Row-level securityDynamic data masking
AlwaysOn Avaiability Groups
TempDB configuration
Performance
Security
Availability
Scalability
![Page 3: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/3.jpg)
3
Deeper insights across data
PolybaseEnhanced SSIS
Enhanced Analysis ServicesData Tools in Visual Studio
Enhanced MDS
DatazenEnhanced Reporting Services
R integrationAnalytics libraries
Access any data
Scale and manage
Mobile BI and RS
Advanced analytics
![Page 4: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/4.jpg)
Instalace MS SQL 2016Novinky a změny
• PolyBase Query Service for External Data• Vyžaduje JRE 7.51 nebo vyšší
![Page 5: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/5.jpg)
PolyBaseNovinky a změny
Se zvyšujícím se objemem nestrukturovaných nebo jen částečně strukturovaných dat volí zákazníci cenově dostupnou variantu distribuovaných a škálovatelných systémů jak Hadoop nebo různá Cloud řešení (např. Azure Storage)
PolyBase• Umožňuje integraci externích dat s SQL Serverem• PolyBase je T-SQL front end, který umožňuje dotazování
dat uložených v Hadoop nebo Azure Blob Storage
![Page 6: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/6.jpg)
PolyBase
Jak začít ?1. http://hortonworks.com/sandbox
• Download Virtual Machine (Hyper-V, Vmware, VirtualBox)
2. Nebo Microsoft Azure Blob Storage
3. Změna uživatelského účtu dle technologie v konfiguračním souboru a restart služeb (Hadoop.config)
C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\Polybase\Settings\Hadoop.config
CREATE EXTERNAL DATA SOURCE hadoop_edsWITH (
TYPE = HADOOP,LOCATION = 'hdfs://192.168.56.101:8050'
);
CREATE EXTERNAL FILE FORMAT CSV WITH (
FORMAT_TYPE = DELIMITEDTEXT,FORMAT_OPTIONS (
FIELD_TERMINATOR = '\t',DATE_FORMAT = 'MM/dd/yyyy'
));
![Page 7: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/7.jpg)
PolyBase
CREATE EXTERNAL TABLE sample_07 (
code nvarchar(255),description nvarchar(255),total_emp int,
salary nvarchar(255))WITH(
LOCATION = '/apps/hive/warehouse/sample_07',DATA_SOURCE = hadoop_eds,FILE_FORMAT = CSV
)
SELECT * FROM dbo.Sample_07
![Page 8: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/8.jpg)
Instalace MS SQL 2016Novinky a změny
• Number of Temp DB files• Initial Size• Autogrowth
• Analysis Services• PowerPivot Mode
![Page 9: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/9.jpg)
Upgrade Advisor 2016Preview 1.1
• Oproti předchůdcům je k dispozici v dostatečném předstihu
• Nová grafika• Scenarios
Stretch Database Advisor Database Upgrade Analyzer Analysis Services Upgrade Advisor Integration Services Upgrade Advisor Reporting Services Upgrade Advisor
• Active Seznam probíhajících nebo ukončených analýz
![Page 10: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/10.jpg)
Management Studio 2016
• Automatic / Manual Update check
• Edit Top 200 Rows lze i z pohledu• Dříve často končilo chybou
• Možnost vypnutí varovné zprávy o neuložených dotazech při vypnutí SSMS
• Activity Monitor – Active Expensive Queries• Informace čte ze systémového pohledu sys.dm_exec_requests
![Page 11: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/11.jpg)
Management Studio 2016 – Live Query Statistics
Při ladění výkonu dotazu často vyžaduje analýzu exekučního plánu.
Problém :• Který z operátorů exekučního plánu je náročný na zdroje systému (CPU, IO, Time)?
![Page 12: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/12.jpg)
Management Studio 2016 – Live Query Statistics
• Tool bar – Include Live Query Statistics• Slouží pro ladění výkonu dotazů a debugging
• Zobrazuje průběh vykonávaného dotazu• Tečkované spojnice pro vykonávané operace• Plné spojnice označují dokončené operace
• Používá systémový pohled sys.dm_exec_query_profiles
• Dostupný od MS SQL 2014 a proto lze tuto funkci využít i oproti starší verzi
• Použití vyžaduje SET STATISTICS PROFILE ON nebo SET STATISTICS XML ON
• Přesnost zobrazených informací je závislá na Estimated Number of Rows
![Page 13: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/13.jpg)
Maintenance Plans
SQL 2000-2014 SQL 2016
![Page 14: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/14.jpg)
Maintenance Plans
![Page 15: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/15.jpg)
Maintenance Plans
![Page 16: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/16.jpg)
Query Store
Pro každý spuštěný dotaz je vytvořen plán, ve kterém je obsažen postup (operace, pořadí, předpoklad) fyzického vykonání dotazu. Tento plán je uložen o paměti pro další použití.
Problém :• Plán se může měnit nebo může být z paměti odstraněn
• Změnou objektu (tabulka, index), změnou statistik, nedostatkem paměti• V paměti je uložen vždy poslední plán a informace o jeho použití
• Jak zjistit podobu předchozích plánů a výkon dotazu s jejich použitím ?• Jak vynutit předchozí optimální plán ?
• Data Collector, Plan Guide… ale…
![Page 17: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/17.jpg)
Query Store
• Automaticky monitoruje a ukládá výkonnostní informace o T-SQL dotazech a jejich plánech• Slouží především pro :
• Analýzu použitých zdrojů dotazy na úrovni konkrétní databáze (CPU, IO, Memory)• Identifikace náročných dotazů v daném časovém rámci• Zjištění frekvence vykonání jednotlivých dotazů• Nalezení příčiny výkonnostních problémů dotazu, porovnání různých plánů daného dotazu, vynucení použití
plánu
![Page 18: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/18.jpg)
Query Store
![Page 19: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/19.jpg)
Query Store
![Page 20: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/20.jpg)
Temporal Tables
• Po spuštění příkazu SELECT je vrácen jeho výsledek zpracovaný z dat, která se v době vykonávaného dotazu nacházela v tabulce.
Problém :• Jaký by byl výsledek příkazu SELECT, který by byl spuštěn před hodinou, včera, před týdnem ?• Jak se změnila datová množina za uplynulou hodinu ?• Které ze zákazníků změnil svou adresu za uplynulý rok ?• Jak rychle opravit „omylem“ změněné řádný na předchozí stav ?
Řešení :• Dříve - Change Data Capture, Change Tracking, Database Snapshot, Restore Database… ale…• MS SQL 2016 - Temporal Tables
![Page 21: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/21.jpg)
Temporal Tables
• Jedná se o tabulku, která automaticky zaznamenává životní cyklus každého řádku• Umožňuje vykonání dotazu nad verzí řádků, která se v tabulce nacházela v definovaném čase
Použití :• Porozumění trendům v čase• Sledování změn v datech• Audit• Správa slowly changing dimension• Rychlá obnova řádků při chybě aplikace/uživatele
DDL
CREATE TABLE…
ALTER TABLE…
DML
INSERT
UPDATE
DELETE
MERGE
Query
SELECT * FROM temporal
Temporal
Query
FOR SYSTEM_TIME• AS OF• FROM…TO• BETWEEN…AND• CONTANED IN
![Page 22: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/22.jpg)
Temporal TablesZákladní fakta
Temporal Table Nasazení Uložení Omezení
Historická tabulka:
• Nemá PRIMARY KEY
• Nemá IDENTITY
• Nemá triggery
• Nemá FOREIGN KEY
• Nelze TRUNCATE pokud je
temporal zapnuto
• Omezené replikace
Podpora Query
![Page 23: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/23.jpg)
Temporal Tables
Temporal table (actual) Temporal table (history)
UPDATEDELETE
Old versions
Temporal query
![Page 24: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/24.jpg)
Temporal Tables
CREATE TABLE dbo.Products(ProductID int PRIMARY KEY, Name varchar(50), ListPrice decimal(8,2), Color varchar(30),
StartTime datetime2 GENERATED ALWAYS AS ROW START NOT NULL,EndTime datetime2 GENERATED ALWAYS AS ROW END NOT NULL,
PERIOD FOR SYSTEM_TIME (StartTime, EndTime)
)WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.ProductsHistory));
GO
![Page 25: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/25.jpg)
Temporal Tables
• V SSMS není historická tabulka zobrazena samostatně• Pouze pokud je SYSTEM_VERSIONING = OFF
• Aktuální a historická tabulka mají vlastní a samostatné:• Indexy• Statistiky• Check constrainty (nelze u historické tabuky)• Triggery (nelze u historické tabuky, u aktuální pouze AFTER)• Partition configuration• Oprávnění
![Page 26: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/26.jpg)
26
Temporal TablesTemporal Query
RowStart @datetime Row
End
RowStart <= @datetime AND RowEnd > @datetime
…FROM dbo.ProductsFOR SYSTEM_TIME AS OF @datetime
RowStart @datetime2 Row
End
FROM dbo.ProductsFOR SYSTEM_TIME FROM @datetime1 TO @datetime2
@datetime1
RowStart < @datetime2 AND RowEnd > @datetime1
![Page 27: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/27.jpg)
27
FROM dbo.ProductsFOR SYSTEM_TIME CONTAINED IN (@datetime1, @datetime2)
Temporal TablesTemporal Query
RowStart @datetime2 Row
End
FROM dbo.ProductsFOR SYSTEM_TIME BETWEEN @datetime1 AND @datetime2
@datetime1
RowStart <= @datetime2 AND RowEnd > @datetime1
RowStart @datetime2Row
End@datetime1
RowStart >= @datetime1 AND RowEnd <= @datetime2
![Page 28: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/28.jpg)
28
Dynamic Data Masking
Telefonicky kontaktujete svou banku a operátor Vás pro ověření totožnosti požádá o poslední číslice z rodného čísla.
Problém :• Rodné číslo, číslo OP, pasu, číslo zdravotního pojištění, platební karty a další, jsou bezpečnostně citlivé
informace.• Tato citlivá data jsou často uložena v databázi • Zpřístupnění citlivých informací je bezpečnostní riziko• Aplikace při práci s daty musí dodržovat bezpečnostní standardy
Řešení :• Aplikačně zajistit zobrazení pouze části, nutné pro identifikaci (funkce, procedura apod.)• Dynamic Data Masking
![Page 29: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/29.jpg)
Dynamic Data Masking
SELECT FirstName, LastName, EmailAddress, NationalIDNumber, LoginID, PhoneNumberFROM [dbo].[Customers]
Telefonicky kontaktujete svou banku a operátor Vás pro ověření totožnosti požádá o poslední číslice z rodného čísla.
![Page 30: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/30.jpg)
Dynamic Data Masking
ALTER TABLE dbo.Customers ALTER COLUMN NationalIDNumberADD MASKED WITH (FUNCTION = 'partial(0,"XXXXXXXX",3)');
![Page 31: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/31.jpg)
Dynamic Data Masking
ALTER TABLE dbo.Customers ALTER COLUMN EmailAddressADD MASKED WITH (FUNCTION = 'email()');
![Page 32: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/32.jpg)
Dynamic Data Masking
ALTER TABLE dbo.Customers ALTER COLUMN LoginIDADD MASKED WITH (FUNCTION = 'default()');
![Page 33: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/33.jpg)
Dynamic Data Masking
Odstranění maskování sloupce :
ALTER TABLE dbo.CustomersALTER COLUMN EmailAddress DROP MASKED;
Oprávnění :
GRANT UNMASK TO AppOperator
REVOKE UNMASK TO AppOperator
Omezení datových typů :• (var)binary, image• xml• uniqueidentifier, sql_variant• rowversion (timestamp), hierarchyid• geometry, geography
![Page 34: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/34.jpg)
Jason Voorheesfiktivní hororová postava z filmu Pátek třináctého
![Page 35: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/35.jpg)
35
Podpora JSON
[{
"SalesOrderID":43659,"CustomerID":29825,"OrderDate":"2011-05-31T00:00:00","ProductID":776,"OrderQty":1,"LineTotal":2024.994000
},{
"SalesOrderID":43662,"CustomerID":29994,"OrderDate":"2011-05-31T00:00:00","ProductID":764,"OrderQty":3,"LineTotal":1258.376700
}]
<dbo.OrdersSalesOrderID="43659" CustomerID="29825" OrderDate="2011-05-31T00:00:00" ProductID="776" OrderQty="1" LineTotal="2024.994000"
/><dbo.Orders
SalesOrderID="43662" CustomerID="29994" OrderDate="2011-05-31T00:00:00" ProductID="764" OrderQty="3" LineTotal="1258.376700"
/>
SELECT * FROM dbo.OrdersFOR XML AUTO
SELECT * FROM dbo.OrdersFOR JSON AUTO
![Page 36: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/36.jpg)
JSON
• Dostupnost ve všech edicích• Oproti XML není v MS SQL 2016 datový typ a nemá speciální indexy
• Ukládáme ho jako tradiční string (char/varchar)
• Rozšířená podpora v T-SQL• FOR JSON AUTO, FOR JSON PATH• ISJSON()• JSON_QUERY()• JSON_VALUES()• JSON_MODIFY()• OPENJSON()
[{
"SalesOrderID":43659,"CustomerID":29825,"OrderDate":"2011-05-31T00:00:00","ProductID":776,"OrderQty":1,"LineTotal":2024.994000
},{
"SalesOrderID":43662,"CustomerID":29994,"OrderDate":"2011-05-31T00:00:00","ProductID":764,"OrderQty":3,"LineTotal":1258.376700
}]
![Page 37: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/37.jpg)
JSON
[{
"SalesOrderID":43659,"CustomerID":29825,"OrderDate":"2011-05-31T00:00:00","ProductID":776,"OrderQty":1,"LineTotal":2024.994000
},{
"SalesOrderID":43662,"CustomerID":29994,"OrderDate":"2011-05-31T00:00:00","ProductID":764,"OrderQty":3,"LineTotal":1258.376700
}]
SELECT * FROM OrdersFOR JSON AUTO
SELECT * FROMOPENJSON(@json)
![Page 38: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/38.jpg)
38
Row-Level Security
Při konfiguraci oprávnění máme možnost v případě tabulky přidělit SELECT, INSERT, UPDATE, DELETE. V případě SELECT a UPDATE můžeme přidělit oprávnění na konkrétní sloupce. Nelze však uživatelům přidělit oprávnění na úroveň řádků.
Problém :• Zdravotnickému personálu, který používá aplikaci pro správu pacientů, chceme zpřístupnit pouze řádky s pacienty,
o které se starají
Řešení :• Filtrování řádků tabulky na programové úrovni (View, Stored Procedure, Function, aplikačně)• SQL Server 2016 Row-Level Security
![Page 39: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/39.jpg)
Row-Level Security
![Page 40: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/40.jpg)
Row-Level Security
PF
P
SP
CREATE FUNCTION dbo.LimitPacientsAccess(@NurseID int)RETURNS TABLE WITH SCHEMABINDING…
CREATE SECURITY POLICY PacientsPolicyADD FILTER PREDICATE dbo.LimitPacientsAccess(NurseID) ON dbo.Pacients,ADD FILTER PREDICATE dbo.LimitPacientsAccess(NurseID) ON dbo.PersonWITH (STATE = ON);
![Page 41: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/41.jpg)
Row-Level Security
CREATE FUNCTION dbo.LimitPacientsAccess(@NurseID int)RETURNS TABLE WITH SCHEMABINDINGAS
RETURN(
SELECT 1 AS OK FROM dbo.PersonWHERE(
NurseID = @NurseIDAND Name = USER_NAME()
)OR IS_MEMBER(N'HeadNurse') = 1OR IS_SRVROLEMEMBER(N'sysadmin') = 1
);
![Page 42: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/42.jpg)
Row-Level Security
Problémy :• Uživatel může provést INSERT řádku, který mu díky Security Policy nebude zpřístupněn• Vhodně napsaným dotazem můžeme dedukovat, jaká data jsou v nepřístupných řádcích• Pozor na CONTEXT_INFO() při použití v Predicate funkci• Dochází ke změně exekučního plánu vlivem vykonání tabulkové funkce a tím možnému ovlivnění výkonu• Predicate Function je vytvořena s WITH SCHEMABINDING• Nejprve je u dotazu vyhodnocena klauzule WHERE a pak je na výsledek aplikována Security Policy
• Momentálně není podpora pro :• Indexované pohledy nad tabulkou se Security Policy• Nelze aplikovat na In-Memory OLTP tabulky• Change Data Capture funguje ale podpora bude pravděpodobně odstraněna
![Page 43: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/43.jpg)
43
Always Encrypted
V případě uložení senzitivních dat do databáze je často požadována jejich ochrana formou šifrování.
Otázka :
• Jaké máme možnosti šifrování dat v SQL Serveru ?
Odpověď :• Transparent Data Encryption (TDE)• Šifrovací funkce EncryptBy a DecryptBy• SQL Server 2016 Always Encrypted
![Page 44: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/44.jpg)
Always Encrypted
![Page 45: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/45.jpg)
Always Encrypted
• Column Master Key• Encryption Key, který chrání column encryption key
• Column Encryption Key• Šifruje data ve zvolených sloupcích
• Konfigurace šifrování sloupce tabulky• Deterministic
• Totožná data mají totožnou šifrovanou podobu• Možno využít při spojování, indexování, lookup operace
• Randomized• Totožná data mají vždy rozdílnou šifrovanou podobu• Bezpečnější, ale s omezeným použitím (nelze indexovat apod.)
• Connection String - .NET Framework 4.6• Column Encryption Setting = enabled;
![Page 46: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/46.jpg)
Always Encrypted
CREATE COLUMN MASTER KEY DEFINITION [AlwaysEncryptedMasterKey]WITH(KEY_STORE_PROVIDER_NAME = N'MSSQL_CERTIFICATE_STORE',KEY_PATH = N'LocalMachine/My/4AD6DFD1466078C3DBF1EC11E4076488C08AE684')
CREATE COLUMN ENCRYPTION KEY [AlwaysEncryptedColumnKey]WITH VALUES(COLUMN MASTER KEY DEFINITION = [AlwaysEncryptedMasterKey],ALGORITHM = 'RSA_OAEP',ENCRYPTED_VALUE = 0x01700000016C006F006...)
![Page 47: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/47.jpg)
Always Encrypted
LastName NVARCHAR(32) COLLATE Latin1_General_BIN2 ENCRYPTED WITH(ENCRYPTION_TYPE = DETERMINISTIC,ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256',COLUMN_ENCRYPTION_KEY = AlwaysEncryptedColumnKey) NOT NULL,
SELECT ID, LastName,Salary FROM dbo.EncryptedTable
Salary intENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = AlwaysEncryptedColumnKey,ENCRYPTION_TYPE = Randomized,ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256')NOT NULL,
![Page 48: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/48.jpg)
Always Encrypted
166
98
51 46
0
20
40
60
80
100
120
140
160
180
Encrypted
Unencrypted
Insert 100k řádků Random Read
Duration (sec)
17,5
5,3
0
2
4
6
8
10
12
14
16
18
20Encrypted
Unencrypted
Data size (MB)
![Page 49: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/49.jpg)
49
AlwaysOn Avalability Groups
![Page 50: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/50.jpg)
50
AlwaysOn Avalability Groups
• AlwaysOn AG podporuje Standard edice MS SQL 2016 s následujícím omezením :• Pouze jedna databáze v Availability Group• Databáze nemůže být na Secondary replice read-only a není podporován Listener
• Load Balancing Listener
• 1 primary replica, 8 secondary replicas, 3 synchronnous, 3 automatic failover• 2012 : 1 primary replica, 4 secondary replicas, 2 synchronnous, 1 automatic failover• 2014 : 1 primary replica, 8 secondary replicas, 2 synchronnous, 1 automatic failover
• Podpora pro Distribued Transaction Coordinator (MSDTC)• Vyžaduje Windows Server 2016 Technival Preview 2• AG musí být vytvořena s WITH DTC_SUPPORT = PER_DB a takto nastavit existující
• Podpora pro SSIS Catalog
![Page 51: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/51.jpg)
AlwaysOn Avalability Groups
![Page 52: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/52.jpg)
52
In-Memory OLTPPřehled rozdílů verzí
SQL Server 2014 SQL Server 2016
Maximální velikost 256 GB 2 TB
LOB datové typy (varbinary(max), [n]varchar(max)) Nelze Ano
Transparent Data Encryption (TDE) Ne Ano
Checkpoint Threads 1 1 pro kontainer
ALTER PROCEDURE / sp_recompile Nelze Ano
Nested native stored procedure calls Nelze Ano
Natively compiled scalar functions Nelze Ano
ALTER TABLE Nelze (DROP/CREATE) Částečně podporováno(offline, 2 x memory)
DML Triggers Nelze Částečně podporováno
Index nad NULLable sloupcem Nelze Ano
Non-BIN2 collation v klíči indexu Nelze Ano
![Page 53: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/53.jpg)
53
In-Memory OLTPPřehled rozdílů verzí
SQL Server 2014 SQL Server 2016
Foreign Keys Nelze Ano
Check a UNIQUE constraints Nelze Ano
Parallelism Ne Ano
OUTER JOIN, OR, NOT, UNION, DISTINCT, EXISTS, IN Nelze Ano
MARS Ne Ano
Management Studio Table Designer Ne Ano
Subqueries ve všech klauzulích SELECT Ne Ano
Podpora bulit-in matematických funkcí Omezená Všechny
![Page 54: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/54.jpg)
54
Real-Time Operational AnalyticsAneb proč to říci jednoduše, když to lze skrýt za obecný název ?
Tabulka v databázi může být často předmětem jak OLTP operací tak analytických dotazů.Oba typy operací se zásadně liší ve způsobu práce s daty a je tedy obtížné zajistit výkon obou typů operací.
Problém : Rowstore vs. Columnstore• Rowstore
• Rowstore (btree) indexy jsou vhodné pro OLTP operace, kdy se pracuje s filtry (seek)• Nadměrné množství rowstore indexů zpomaluje modifikace• Pokus o indexování obou typů operací končí často degradací výkonu
• Columnstore• Optimální pro velké datové objemy a analytické operace (výpočty, agregace, scan operace)• Znemožňují existenci Rowstore indexů nebo vynucují Read-only stav tabulky• Nepodporují seek operace
• Jak optimalizovat oba typy přístupů k jediné tabulce ?
![Page 55: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/55.jpg)
Columnstore IndexPřehled rozdílů verzí
SQL Server 2012 SQL Server 2014 SQL Server 2016
Bach mode paralelních operací Ano Ano Ano
Bach mode single-thread operací Ne Ne Ano
Archivní komprese Ne Ano Ano
Snapshot/Read Committed Snapshot transakce Ne Ne Ano
Columnstore index v rámci definice tabulky Ne Ne Ano
AlwaysOn podpora columnstore Ano Ano Ano
AlwaysOn readable secondary podpora read-only columnstore Ano Ano Ano
AlwaysOn readable secondary podpora updatable columnstore Ne Ne Ano
Read-only nonclustered columnstore Ano Ano Ano*(*read-only FG)
Updatable clustered columnsotre Ne Ano Ano
Rowstore a clustered columnstore index společně nad tabulkou Ne Ne Ano
![Page 56: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/56.jpg)
Columnstore IndexPřehled rozdílů verzí
SQL Server 2012 SQL Server 2014 SQL Server 2016
Columnstore nad memory-optimized tabulkou N/A Ne Ano
Nonclustered columnstore s filtrem Ne Ne Ano
• Nad tabulkou může být vytvořen jeden updatable nonclustered columnstore index• Memory-optimized tabulka může mít jeden columnstore index• Tabulka může mít PRIMARY KEY i FOREIGN KEY zároveň s clustered columnstore indexem• Pro odstranění smazaných řádků z columnstore indexu postačí operace REORGANIZE (online)
• Zvýšení výkonu při práci s columnstore indexy• SORT, COUNT, SUM, AVG, MIN, MAX atd.• String compare
![Page 57: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/57.jpg)
Real-Time Operational Analytics
![Page 58: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/58.jpg)
58
Strech Database
• Automaticky umísťuje data z tabulky do Azure SQL Database
• Komunikace zajištěna přes LinkedServer
• Verze CTP 2• Kopíruje celou tabulku• Časté chyby v SSMS• Velké množství omezení
![Page 59: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/59.jpg)
Strech Database
EXEC sp_configure 'remote data archive',1RECONFIGURE
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Pa$$w0rd'
![Page 60: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/60.jpg)
Strech Database
![Page 61: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/61.jpg)
Strech Database
![Page 62: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/62.jpg)
Strech Database
![Page 63: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/63.jpg)
63
Přehled novinek v oblasti BI – Reporting Services
Nové typy grafů
Tree Map Chart Sunburst Chart
![Page 64: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/64.jpg)
64
Přehled novinek v oblasti BI – Reporting Services
Přizpůsobení zobrazení parametrů v reportu
![Page 65: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/65.jpg)
65
Přehled novinek v oblasti BI – Reporting Services
Export do PowerPoint HTML 5 Rendering Engine
![Page 66: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/66.jpg)
66
Přehled novinek v oblasti BI – Integration Services
• Vlastní úroveň logování balíčků v SSIS katalogu• RuntimeLineage loging level• Lze vybrat logované události
![Page 67: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/67.jpg)
67
Přehled novinek v oblasti BI – Integration Services
• Podpora AlwaysOn AG• Databáze SSIS katalogu (SSISDB) může být součástí AlwaysOn Availability Group a tím zrcadlena na
sekundární servery
• Incremental package deployment• Lze nasazovat pouze jeden nebo několik SSIS balíčků namísto nasazení celého projektu
• Jména sloupců, ve kterých vznikla chyba při Data Flow• Při směrování Error výstupu v rámci Data Flow byl dostupný pouze číselný identifikátor sloupce, ve kterém
nastala chyba• Nově je několik metod, jak zjistit jméno sloupce (Script, DiagnosticEx logging atd.)
• Nová role pro čtení výstupu logování• Pouze členové role ssis_admin měli přístup k výstupu logování• K tomuto účelu je k dispozici nová role ssis_logreader
• Podpora pro OData V4 a Power Query Data source
![Page 68: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/68.jpg)
68
Přehled novinek v oblasti BI – Analysis Services
• DAX variables mohou ukládat výsledek výrazu v pojmenované proměnné• Tato proměnná pak může být použita jako argument dalších výrazů
• DirectQuery generuje jednodušší dotazy, které mají vyšší výkon
• Paralelní zpracování tabulek s dvěma a více částmi (partitions)• Cílem je zvýšení výkonu
• Snazší instalace Analysis Services Power Pivot Mode for Sharepoint
• NUMA optimalizace pro Tabular model
![Page 69: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/69.jpg)
69
Přehled novinek v oblasti BI – Analysis Services
Nové Date a Time funkce• CALENDAR, CALENDARAUTO, DATEDIFF
• Nové Filter funkce• ADDMISSINGITEMS, SUBSTITUTEWITHINDEX
• Nové informační funkce• ISONORAFTER
• Nové matematické funkce• ACOS, ACOSH, ASIN, ASINH, ATAN, ATANH, COS, COSH, RADIANS, DEGREES, PI• COMBIN, COMBINA, EVEN, EXP, GCD, ISO.CEILING, LCM, MROUND, ODD, PRODUCT, PRODUCTX, QUOTIENT
• Nové statistické funkce• BETA.DIST, BETA.INV, CHISQ.INV, CHISQ.INV.RT, CONFIDENCE.NORM, CONFIDENCE.T• EXPON.DIST, GEOMEAN, GEOMEANX, MEDIAN, MEDIANX• PERCENTILE.EXC, PERCENTILE.INC, PERCENTILEX.EXC, PERCENTILE.INC• SIN, SINH, SQRTPI, TAN, TANH, XIRR, XNPV
• Ostatní nové funkce• CONCATENATEX, GROUPBY, INTERSECT, ISEMPTY, NATURALINNERJOIN, NATURALLEFTOUTERJOIN• SUMMARIYECOLUMNS, UNION
![Page 70: Microsoft SQL Server 2016 - WUG](https://reader030.vdocuments.net/reader030/viewer/2022012501/617accffbba54237cb432f14/html5/thumbnails/70.jpg)