The FileTable feature in SQL Server Code-Named “Denali” allows SQL Server-based enterprise applications to store unstructured file system data, such as files and directories, on a special FileTable in a relational database. This allows an application to integrate its storage and data management systems, and provides integrated SQL Server services (such as full-text search) over unstructured data and metadata, along with easy policy management and data administration.
Traditional indexes store data across rowsColumn index stores data across a columnAllows for faster queries + better compressionCannot easily insert, update or delete data
Vertipaq technology that is shared in PowerPivot and Analysis ServicesBetter compression and performance gains due to redundancy across columnsHeavily optimised for star join queries
Ing. Eduardo Castro, PhDecastro@mswindowscr.org
References Whats new in SQL11 by Roger Noble DAT303 SQL Server “Denali” High Availability: The next generation high availability solution http://blogs.technet.com/b/dataplatforminsider/archive/2010/11/12/analysis- services-roadmap-for-sql-server-denali-and-beyond.aspx http://prologika.com/CS/blogs/blog/archive/2010/11/15/bism-column-store.aspx http://msdn.microsoft.com/en-us/library/ms174518.aspx http://www.jenstirrup.com/2010/11/project-crescent-in-denali-bism-summary.html http://blogs.msdn.com/b/ssdt/archive/2010/11/08/welcome.aspx http://msdn.microsoft.com/en-us/data/gg427686 http://www.msteched.com/2010/Europe/DAT314 http://www.msteched.com/2010/NorthAmerica/BIE304 http://ecn.channel9.msdn.com/o9/te/Europe/2010/pptx/bin303.pptx DAT303 SQL Server “Denali” High Availability
References• What’s new BOL - http://msdn.microsoft.com/en-us/library/bb500435(v=SQL.110).aspx• HADR - http://msdn.microsoft.com/en-us/library/ff877884(SQL.110).aspx & http://www.brentozar.com/archive/2010/11/sql-server-denali-database-mirroring-rocks/• Atlanta - https://www.microsoftatlanta.com/• T-SQL - Tobias Ternström• Sequence Generators - http://msdn.microsoft.com/en-us/library/ff878058(SQL.110).aspx & http://www.sergeyv.com/blog/archive/2010/11/09/sql-server-sequence-generators.aspx• Contained Databases - http://sqlblog.com/blogs/aaron_bertrand/archive/2010/11/16/sql-server-v-next- denali-contained-databases.aspx• Data Quality Services - Denise Draper• Column Store - http://download.microsoft.com/download/8/C/1/8C1CE06B-DE2F-40D1-9C5C- 3EE521C25CE9/Columnstore Indexes for Fast DW QP SQL Server 11.pdf• UDM & BISM - http://blogs.technet.com/b/dataplatforminsider/archive/2010/11/12/analysis-services- roadmap-for-sql-server-denali-and-beyond.aspx & http://prologika.com/CS/blogs/blog/archive/2010/11/13/business-intelligence-semantic-model-the- good-the-bad-and-the-ugly.aspx• SSIS - Matt Masson• SSIS Resolve References - http://www.sqlservercentral.com/blogs/dknight/archive/2010/11/15/ssis- denali-resolve-references.aspx• BISM vs SSAS - http://cwebbbi.wordpress.com/2010/11/14/pass-summit-day-2-the-aftermath/• Crescent - http://www.jenstirrup.com/2010/11/project-crescent-when-is-it-best_1327.html
T-SQL Enhancements Robust Discovery of Result Set Metadata (replacing SET FMTONLY) Improved Error Handling Introduces the THROW, which allows us to re-throw an exception caught in an exception handling block FileTable Sequence Generators Paging Construct Support for UTF-16 Collations can be used with the data types: nchar, nvarchar, and sql_variant
T-SQL Result Sets Suppose that you need to write code against SQL Server that uses result sets returned from stored procedures and dynamic batches You need a guarantee that the result sets will have very specific metadata. if the shape of the result is different than what you expect, you need it to fail.http://www.sqlmag.com/blogs/puzzled-by-t-sql/tabid/1023/entryid/76198/Denali-T-SQL-at-a-Glance-EXECUTE-WITH-RESULT-SETS.aspx
T-SQL Result Sets You can specify the new option with the EXECUTE statement when executing a stored procedure or a dynamic batch EXECUTE <batch_or_proc> WITH <result_sets_option>;
T-SQL Result Sets RESULT SETS UNDEFINED this is the default, meaning that never mind what’s the shape of the result sets RESULT SETS NONE you have a guarantee that no result set will be returned. If a result set is returned, an error is generated and the batch terminates
T-SQL Result Sets RESULT SETS <definition> Specify the metadata of one or more result sets, and get a guarantee that the result sets and their number will match the metadata defined in the RESULT SETS clause
SQL Server Denali THROWcommand The THROW command can be invoked in two main ways: Without any parameters within the CATCH block of a TRY/CATCH construct. This will essentially re-throw the original error. With parameters to throw a user defined error.
T-SQL Enhancements File TableFileTable• A merging of the FILESTREAM and HierarchyID• Can store files and folders• FileTables are accessed via windows share• Created table has predefined schemaCREATE TABLE DocumentStore AS FileTable WITHFileTable_Directory Document FILESTREAM_ON FILESTREAMGroup1;
T-SQL Enhancements Sequence GeneratorSEQUENCE• Generates a predicatble number of values• Global• Can be ascending, descending, minimum, maximum and cycle• Supports getting a range via sp_sequence_get_range
T-SQL Enhancements Sequence GeneratorCREATE SEQUENCE ComWinSchema.IdSequence AS INT START WITH 10000 INCREMENT BY 1;GOINSERT INTO ComunidadMembers (MemberId, Name)VALUES (NEXT VALUE FOR ComWinSchema.IdSequence, Juan);INSERT INTO ComunidadAdmin (AdminId, Name)VALUES (NEXT VALUE FOR ComWinSchema.IdSequence, ‘Juan);
T-SQL Enhancements Paging -- Before Denali WITH a AS ( SELECT ROW_NUMBER() OVER (ORDER BY Name) AS RowNum ... ) SELECT * FROM a WHERE a BETWEEN 11 AND 20 ORDER BY RN ORDER BY RowNum;http://www.davidhayden.com/blog/dave/archive/2005/12/30/2652.aspx
T-SQL Enhancements Paging-- In DenaliSELECT...ORDER BY ...OFFSET 10 ROWSFETCH NEXT 10 ROWS ONLY Not a performance improvement, there for ease of use Perf is similar to using ROW_NUMBER
VertiPaq VertiPaq Storage Engine Lots of cheap RAM => In-memory storage Column-oriented data compression > 10:1 Support for column-oriented DAX queries
Column Store Indexes• PowerPivot in SQL Server• An index is created across columns instead of rows• Can give a massive query performance increase• Read only• Reduced IO• Compressed• Not a NoSQL implementation / alternative
Denali Columnstore Indexes Denali introduces a new type of index called the columnstore. This new type of index is built up on the values across columns instead of traditional row based indexes. As data tends to be less unique across a column it allows the columnstore to efficiently compress and store data.
Denali Columnstore Indexes The columnstore is currently read-only, however it can be updated via dropping and recreating the index, or switching in a partition. Due to the ability to compress and keep the index in memory the Columnstore can give massive (10x, 100x, 1000x…) increase in speed to warehouse queries Not all queries can benefit and some can regress. In general typical star join queries found in a Data Warehouse when only a portion of the columns are selected will get the biggest benefit.