SQL Server 2012 Top 10 new features
Agenda AlwaysOn Availability Groups ColumnStore Index Contained database Windowing functions FileTable Semantic Search T-SQL enhancements Server roles en default schema voor groups SSIS project deployment BISM met PowerView
1. Availability Groups Mirroring 2.0 (?) Highlights: Zelf groep van databases definiëren Tot 4 secondaries Read-only secondaries Backup from secondary (not differential) Zie sessie van Robert Hartskeerl over AlwaysOn om 11.00u
2. Column store index Normale heap/index slaat records rij voor rij op Veel IO overhead als niet alle kolommen nodig zijn Column store index slaat gegevens per kolom op Betere compressie Minder IO Veel betere performance Zie sessie van Hugo Kornelis: SQL Server 2012 ColumnStore index om 14.45u
3. Contained Database Moving a database to a different SQL Server instance is easy Detach / attach Backup / restore Right? How about Logins ? Linked Servers ? Database mail ? Jobs ? #temp tables / cross database joins and collation ? … ?
Contained Database geeft: Database authentication Users met wachtwoord / windows users Geen mapping met login -> geen orphaned users TempDB collation issues Objecten in tempdb worden gemaakt met de collation van de database DB is meer een black box. Verplaatsen is makkelijker (Azure?, OTAP?, ..) Nog te wensen: Volledige onafhankelijkheid van instance Alleen partially contained is nu geïmplementeerd
Contained database demo
Tot slot EXEC sp_configure ‘contained database authentication’, 1 SELECT * FROM sys.dm_db_uncontained_entities ALTER DATABASE <name> SET CONTAINMENT PARTIAL Niet alle features zijn te combineren met contained databases Er zijn enkele security implicties, oa: Databases met guest account enabled zijn benaderbaar Users met control database permission kunnen containment aanzetten en mensen toegang geven … (zie BOL)
4. Windowing functions over clause van aggregate functies uitgebreid met: Rows x preceding Rows between x preceding and y following Rows unbounded preceding … Geeft toepassingen als moving average, meelopend totaal, vergelijk met vorige maand, …
Windowing functions demo
Extra grouping functions PERCENTILE_CONT, PERCENTILE_DISC In statistics, a percentile (or centile) is the value of a variable below which a certain percent of observations fall. PERCENT_RANK, CUME_DIST Calculates the relative rank of a row within a group of rows FIRST_VALUE, LAST_VALUE Returns the first, last value in an ordered set of values +- Comparable to sibling functions in SSAS hierarchy LEAD, LAG Accesses data from a subsequent, earlier row in the same result set without the use of a self-join with a given offset
5. FileTable Klassiek database ontwerp issue: BLOB’s in database of extern op fileshare? Beide oplossingen hebben nadelen SQL Server 2008: FileStream Best of both worlds: wij doen ze in de database maar SQL Server zet ze op een fileshare Nadeel: applicatiecode moet aangepast om feature te gebruiken SQL Server 2012: FileTable Geen onderscheid meer tussen fileshare en tabel Intergreert goed met full text en semantic search
6. Semantic Search Uit BOL: provides deep insight into unstructured documents stored in SQL Server databases by extracting statistically relevant key phrases, and then - based on these phrases – identifying similar documents. These results are made available as structured data through three Transact-SQL rowset functions full-text search: query for words in a document semantic search: query the meaning of the document E.g. query the document similarity index to identify resumes that match a job description
Voorbereiding Installeer en enable full text search Run SemanticLanguageDatabase.msi Unpacks mdf Attach semanticdb database Register semanticdb: sp_fulltext_semantic_register_language_statistics_db @dbname = N'semanticsdb; Installeer iFilters om te zoeken inbijvoorbeeld docx, pptx, …
FileTable + semantic search demo
7. T-SQL enhancements Throw (ter vervanging van raiserror) Sequence (ter vervanging van identity) Paging (offset x rows fetch next y rows) Functions: Parse (convert met regional settings) Try_parse (parse maar zonder errors) Format (omdat we code 105 van convert niet kunnen onthouden) Concat (omdat we niet van NULL houden) IIF (omdat CASE soms omslachtig is)
T-SQL demo
8. Security Server roles default schema voor groups
User defined server roles Eigen rollen maken op instance level Vergelijkbaar met database roles Minder noodzaak voor sysadmin Minder rechten voor administrators (better separation of duties) Triggers voor add/remove logins to user-defined server roles T-SQL CREATE/DROP SERVER ROLE ALTER SERVER ROLE E.g. ALTER SERVER ROLE Production ADD MEMBER [TrainSQL\Peter] ; Vervangt sp_addrolemember
default schema voor groups Probleem met SQL Server 2008 en eerder: Schema en user worden automatisch aangemaakt als object gemaakt in default schema en er is geen default schema Logins gebaseerd op groepen kennen geen default schema Login gebaseerd op windows groep kan nu default schema krijgen (no. 1 customer request) Schema management makkelijker
demo Security Klik server role met SSMS in elkaar. Create login BusinessUsers zonder default schema en laat zien wat er gebeurt demo
9. SSIS project deployment Probleem met SQL Server 2008 en eerder: Deployen naar filesystem of SQL Server (msdb)? Project deployment: SSISDB catalog (vergelijkbaar met ReportServer database) Meer versies van project mogelijk Environments vervangen configurations Parameters vervangen parent package configurations T-SQL procedures om packages uit te voeren
SSIS demo
10. BISM met PowerView BISM = BI Semantic Model PowerView: Nieuw model naast SSAS UDM Gebaseerd op PowerPivot PowerView: Rapportage tool voor niet techneuten Zie sessie van Marcel Westra om 13.30u
GetReady 2012 Utrecht 19 juni Hele dag nieuwe features Peter ter Braake
BEDANKT! Peter ter Braake trainsql@live.nl @pbraake