new database engine component fully integrated into sql server 2014 optimized for oltp workloads...

20

Upload: erick-rimel

Post on 11-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements
Page 2: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

SQL

David Peter Hansen

First look at the In-Memory OLTP database engine component in SQL Server 2014

Senior Manager, Hitachi Consulting@dphansen

Page 3: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

new database engine component fully integrated into SQL Server 2014

optimized for OLTP workloads accessing memory resident data

achive improvements in performance and reduction in processing

Page 4: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

Client App

Natively Compiled SPs and Schema

TDS Handler and Session Management

In-Memory OLTP Compiler

Tables

Indexes

Memory Optimized Tables & Indexes

Tables

Indexes

Buffer Pool for Tables & Indexes

Query Interop

Parser, Catalog, Optimizer

Interpreted T-SQL Query Execution

T3 T1 T2

Page 5: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

checkpoint filesall data is stored in memory, all the time

checkpoint files for recovery purpose – append only

max # of check point files = 4000, max size of a check point file = 128 MB

theoretical maximum = 512 GB, supported maximum = 256 GB

Page 6: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

transaction loguse same transaction log as disk-based tables

use less log bandwidth; do not log index operations or UNDO records

Page 7: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

recovery timeduring database recovery all data needs to be read from disk into memory

checkpoint files uses streaming IO

main factors: speed of sequential IO and bandwidth of HBA; no need for SSD

recovery time objective (RTO) on restart determine IO speed requirement

spread checkpoint files over multiple LUNs; support for parallel load of checkpoint files

Page 8: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

create tablehas similar syntax for creatind disk-based tables

LOB data not allowed

row limit of 8060 bytes with no off-row data

DURABILITY = SCHEMA_AND_DATA or SCHEMA_ONLY

limitations: no DML triggers, no foreign keys, no IDENTITY

Page 9: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

indexes not stored as B-trees

hash indexes

# buckets >= expected cardinality of the index key column

range indexes – not available in CTP1

are not stored on disk

Page 10: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

democreate memory-optimized OLTP database, tables, and indexes

Page 11: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

t-sql dmlselect, insert, update, delete

almost transparent to users that they are working on memory-optimized tables

client applications connect through the TDS handler

interop capabilities – interpreted T-SQL can access memory-optimized tables

Page 12: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

demoselect, insert, update

Page 13: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

locksoptimistic multi-version concurrency control

no locks acquired; no waiting because of blocking

no waits for reading data from disks or locks on data rows

if a transaction insert a row with same key as another open transaction error

if a transaction updates same row as another open transaction error

Page 14: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

demolocking: memory-optimized tables vs disk-based tables

Page 15: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

natively compiled stored procaccess memory-optimized tables: interop (interpreted T-SQL) or natively compiled stored procs

ad-hoc queries interop

access both memory-optimized and disk-based tables interop

best execution performance natively compiled stored procedures

natively compiled stored procedures can only access memory-optimized tables

Page 16: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

demonatively compiled stored procedures and interop

Page 17: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

summarydatabase, checkpoint files & transaction log

recovery time

tables, indexes & dml

locks

natively compiled stored procedures

Page 18: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

referencesblogs.msdn.com/b/sqlcat/archive/2013/06/25/sql-server-in-memory-oltp-internals-overview-for-ctp1.aspxblogs.technet.com/b/dataplatforminsider/archive/tags/in_2d00_memory/research.microsoft.com/apps/pubs/default.aspx?id=193594blogs.msdn.com/b/arvindsh/archive/2013/07/03/sql-2014-in-memory-oltp-hekaton-training-videos-and-white-papers.aspxwww.sqlskills.com/blogs/bobb/category/hekaton/sqlblog.com/blogs/davide_mauri/archive/2013/08/16/testing-hekaton-some-results.aspxthomaslarock.com/2013/08/sql-server-2014-in-memory-oltp-hekaton-useful-linksblogs.msdn.com/b/carlnol/archive/2013/09/16/implementing-lob-storage-in-memory-optimized-tables.aspxmsdn.microsoft.com/en-us/library/dn133186(v=sql.120).aspxmattsql.wordpress.com/2013/07/08/in-memory-oltp-with-sql-server-2014/www.simple-talk.com/sql/database-administration/exploring-in-memory-oltp-engine-(hekaton)-in-sql-server-2014-ctp1/

Page 19: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

EvaluationCreate a Text message on your phone and send it to 1919 with the content:

DB302 5 5 5 I liked it a lotSession Code

David Performance

(1 to 5)

Match of technical Level

(1 to 5)

Relevance(1 to 5) Comments

(optional)

Evaluation Scale: 1 = Very bad 2 = Bad 3 = Relevant 4 = Good 5 = Very Good!

Questions:• Speaker Performance• Relevance according to your work • Match of technical level according to

published level• Comments

Page 20: new database engine component fully integrated into SQL Server 2014 optimized for OLTP workloads accessing memory resident data achive improvements

davidpeterhansen.com/talks