SQL Server 2017 Developer’s Guide
图书信息
| 作者 | Dejan Sarka,Miloš Radivojevic,William Durkin |
| 出版社 | Packt Publishing |
| ISBN | 9781788479936 |
| 出版时间 | 2018-03-16 |
| 字数 | 100.7万 |
| 分类 | William Durkin,Packt Publishing,进口书,外文原版书,电脑,网络 |
读书简介
Build smarter and efficient database application systems for your organization with SQL Server 2017 About This Book ? Build database applications by using the development features of SQL Server 2017 ? Work with temporal tables to get information stored in a table at any time ? Use adaptive querying to enhance the performance of your queries Who This Book Is For Database developers and solution architects looking to design efficient database applications using SQL Server 2017 will find this book very useful. In addition, this book will be valuable to advanced analysis practitioners and business intelligence developers. Database consultants dealing with performance tuning will get a lot of useful information from this book as well. Some basic understanding of database concepts and T-SQL is required to get the best out of this book. What You Will Learn ? Explore the new development features introduced in SQL Server 2017 ? Identify opportunities for In-Memory OLTP technology ? Use columnstore indexes to get storage and performance improvements ? Exchange JSON data between applications and SQL Server ? Use the new security features to encrypt or mask the data ? Control the access to the data on the row levels ? Discover the potential of R and Python integration ? Model complex relationships with the graph databases in SQL Server 2017 In Detail Microsoft SQL Server 2017 is the next big step in the data platform history of Microsoft as it brings in the power of R and Python for machine learning and containerization-based deployment on Windows and Linux. Compared to its predecessor, SQL Server 2017 has evolved into Machine Learning with R services for statistical analysis and Python packages for analytical processing. This book prepares you for more advanced topics by starting with a quick introduction to SQL Server 2017’s new features and a recapitulation of the possibilities you may have already explored with previous versions of SQL Server. The next part introduces you to enhancements in the Transact-SQL language and new database engine capabilities and then switches to a completely new technology inside SQL Server: JSON support. We also take a look at the Stretch database, security enhancements, and temporal tables. Furthermore, the book focuses on implementing advanced topics, including Query Store, columnstore indexes, and In-Memory OLTP. Towards the end of the book, you’ll be introduced to R and how to use the R language with Transact-SQL for data exploration and analysis. You’ll also learn to integrate Python code in SQL Server and graph database implementations along with deployment options on Linux and SQL Server in containers for development and testing. By the end of this book, you will have the required information to design efficient, high-performance database applications without any hassle. Style and approach This book is a detailed guide to mastering the development features offered by SQL Server 2017, with a unique learn-as-you-do approach. All the concepts are explained in a very easy-to-understand manner and are supplemented with examples to ensure that you—the developer—are able to take that next step in building more powerful, robust applications for your organization with ease.
目录
Title Page
Copyright and Credits
SQL Server 2017 Developer's Guide
Dedication
Packt Upsell
Why subscribe?
PacktPub.com
Contributors
About the authors
About the reviewer
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
Introduction to SQL Server 2017
Security
Row-Level Security
Dynamic data masking
Always Encrypted
Engine features
Query Store
Live query statistics
Stretch Database
Database scoped configuration
Temporal Tables
Columnstore indexes
Containers and SQL Server on Linux
Programming
Transact-SQL enhancements
JSON
In-Memory OLTP
SQL Server Tools
Business intelligence
R in SQL server
Release cycles
Summary
Review of SQL Server Features for Developers
The mighty Transact-SQL SELECT
Core Transact-SQL SELECT statement elements
Advanced SELECT techniques
DDL, DML, and programmable objects
Data definition language statements
Data modification language statements
Triggers
Data abstraction—views, functions, and stored procedures
Transactions and error handling
Error handling
Using transactions
Beyond relational
Spatial data
CLR integration
XML support in SQL Server
Summary
SQL Server Tools
Installing and updating SQL Server Tools
New SSMS features and enhancements
Autosave open tabs
Searchable options
Enhanced scroll bar
Execution plan comparison
Live query statistics
Importing flat file Wizard
Vulnerability assessment
SQL Server Data Tools
Tools for developing R and Python code
RStudio IDE
R Tools for Visual Studio 2015
Setting up Visual Studio 2017 for data science applications
Summary
Transact-SQL and Database Engine Enhancements
New and enhanced functions and expressions
Using STRING_SPLIT
Using STRING_ESCAPE
Using STRING_AGG
Handling NULLs in the STRING_AGG function
The WITHIN GROUP clause
Using CONCAT_WS
Using TRIM
Using TRANSLATE
Using COMPRESS
Using DECOMPRESS
Using CURRENT_TRANSACTION_ID
Using SESSION_CONTEXT
Using DATEDIFF_BIG
Using AT TIME ZONE
Using HASHBYTES
Using JSON functions
Enhanced DML and DDL statements
The conditional DROP statement (DROP IF EXISTS)
Using CREATE OR ALTER
Resumable online index rebuild
Online ALTER COLUMN
Using TRUNCATE TABLE
Maximum key size for nonclustered indexes
New query hints
Using NO_PERFORMANCE_SPOOL
Using MAX_GRANT_PERCENT
Using MIN_GRANT_PERCENT
Adaptive query processing in SQL Server 2017
Interleaved execution
Batch mode adaptive memory grant feedback
Batch mode adaptive joins
Disabling adaptive batch mode joins
Summary
JSON Support in SQL Server
Why JSON?
What is JSON?
Why is it popular?
JSON versus XML
JSON objects
JSON object
JSON array
Primitive JSON data types
JSON in SQL Server prior to SQL Server 2016
JSON4SQL
JSON.SQL
Transact-SQL-based solution
Retrieving SQL Server data in JSON format
FOR JSON AUTO
FOR JSON PATH
FOR JSON additional options
Add a root node to JSON output
Include NULL values in the JSON output
Formatting a JSON output as a single object
Converting data types
Escaping characters
Converting JSON data in a tabular format
OPENJSON with the default schema
Processing data from a comma-separated list of values
Returning the difference between two table rows
OPENJSON with an explicit schema
Import the JSON data from a file
JSON storage in SQL Server 2017
Validating JSON data
Extracting values from a JSON text
JSON_VALUE
JSON_QUERY
Modifying JSON data
Adding a new JSON property
Updating the value for a JSON property
Removing a JSON property
Multiple changes
Performance considerations
Indexes on computed columns
Full-text indexes
Summary
Stretch Database
Stretch DB architecture
Is this for you?
Using Data Migration Assistant
Limitations of using Stretch Database
Limitations that prevent you from enabling the Stretch DB features for a table
Table limitations
Column limitations
Limitations for Stretch-enabled tables
Use cases for Stretch Database
Archiving of historical data
Archiving of logging tables
Testing Azure SQL database
Enabling Stretch Database
Enabling Stretch Database at the database level
Enabling Stretch Database by using wizard
Enabling Stretch Database by using Transact-SQL
Enabling Stretch Database for a table
Enabling Stretch DB for a table by using wizard
Enabling Stretch Database for a table by using Transact-SQL
Filter predicate with sliding window
Querying stretch databases
Querying and updating remote data
SQL Server Stretch Database pricing
Stretch DB management and troubleshooting
Monitoring Stretch Databases
Pause and resume data migration
Disabling Stretch Database
Disable Stretch Database for tables by using SSMS
Disabling Stretch Database for tables using Transact-SQL
Disabling Stretch Database for a database
Backing up and restoring Stretch-enabled databases
Summary
Temporal Tables
What is temporal data?
Types of temporal tables
Allen's interval algebra
Temporal constraints
Temporal data in SQL Server before 2016
Optimizing temporal queries
Temporal features in SQL:2011
System-versioned temporal tables in SQL Server 2017
How temporal tables work in SQL Server 2017
Creating temporal tables
Period columns as hidden attributes
Converting non-temporal tables to temporal tables
Migrating an existing temporal solution to system-versioned tables
Altering temporal tables
Dropping temporal tables
Data manipulation in temporal tables
Inserting data in temporal tables
Updating data in temporal tables
Deleting data in temporal tables
Querying temporal data in SQL Server 2017
Retrieving temporal data at a specific point in time
Retrieving temporal data from a specific period
Retrieving all temporal data
Performance and storage considerations with temporal tables
History retention policy in SQL Server 2017
Configuring the retention policy at the database level
Configuring the retention policy at the table level
Custom history data retention
History table implementation
History table overhead
Temporal tables with memory-optimized tables
What is missing in SQL Server 2017?
SQL Server 2016 and 2017 temporal tables and data warehouses
Summary
Tightening Security
SQL Server security basics
Defining principals and securables
Managing schemas
Object and statement permissions
Encrypting the data
Leveraging SQL Server data encryption options
Always Encrypted
Row-Level Security
Using programmable objects to maintain security
Predicate-based Row-Level Security
Exploring dynamic data masking
Defining masked columns
Dynamic data masking limitations
Summary
Query Store
Why Query Store?
What is Query Store?
Query Store architecture
Enabling and configuring Query Store
Enabling Query Store with SSMS
Enabling Query Store with Transact-SQL
Configuring Query Store
Query Store default configuration
Query Store recommended configuration
Disabling and cleaning Query Store
Query Store in action
Capturing the Query info
Capturing plan info
Collecting runtime statistics
Query Store and migration
Query Store – identifying regressed queries
Query Store – fixing regressed queries
Query Store reports in SQL Server Management Studio
Regressed queries
Top resource – consuming queries
Overall Resource Consumption report
Queries With Forced Plans
Queries With High Variation
Automatic tuning in SQL Server 2017
Regressed queries in the sys.dm_db_tuning_recommendations view
Automatic tuning
Capturing waits by Query Store in SQL Server 2017
Catalog view sys.query_store_wait_stats
Query Store use cases
SQL Server version upgrades and patching
Application and service releases, patching, failovers, and cumulative updates
Identifying ad hoc queries
Identifying unfinished queries
Summary
Columnstore Indexes
Analytical queries in SQL Server
Joins and indexes
Benefits of clustered indexes
Leveraging table partitioning
Nonclustered indexes in analytical scenarios
Using indexed views
Data compression and query techniques
Writing efficient queries
Columnar storage and batch processing
Columnar storage and compression
Recreating rows from columnar storage
Columnar storage creation process
Development of columnar storage in SQL Server
Batch processing
Nonclustered columnstore indexes
Compression and query performance
Testing the nonclustered columnstore index
Operational analytics
Clustered columnstore indexes
Compression and query performance
Testing the clustered columnstore index
Using archive compression
Adding B-tree indexes and constraints
Updating a clustered columnstore index
Deleting from a clustered columnstore index
Summary
Introducing SQL Server In-Memory OLTP
In-Memory OLTP architecture
Row and index storage
Row structure
Row header
Row payload
Index structure
Non-clustered index
Hash indexes
Creating memory-optimized tables and indexes
Laying the foundation
Creating a table
Querying and data manipulation
Performance comparisons
Natively compiled stored procedures
Looking behind the curtain of concurrency
Data durability concerns
Database startup and recovery
Management of In-Memory objects
Dynamic management objects
Extended events
PerfMon counters
Assistance in migrating to In-Memory OLTP
Summary
In-Memory OLTP Improvements in SQL Server 2017
Ch-Ch-Changes
Feature improvements
Collations
Computed columns for greater performance
Types of data
What's new with indexes?
Unconstrained integrity
Not all operators are created equal
Size is everything!
Improvements in the In-Memory OLTP engine
Down the index rabbit-hole
Large object support
Storage differences of on-row and off-row data
Cross-feature support
Security
Programmability
High availability
Tools and wizards
Summary
Supporting R in SQL Server
Introducing R
Starting with R
R language basics
Manipulating data
Introducing data structures in R
Getting sorted with data management
Understanding data
Basic visualizations
Introductory statistics
SQL Server R Machine Learning Services
Discovering SQL Server R Machine Learning Services
Creating scalable solutions
Deploying R models
Summary
Data Exploration and Predictive Modeling with R
Intermediate statistics – associations
Exploring discrete variables
Finding associations between continuous variables
Continuous and discrete variables
Getting deeper into linear regression
Advanced analysis – undirected methods
Principal Components and Exploratory Factor Analysis
Finding groups with clustering
Advanced analysis – directed methods
Predicting with logistic regression
Classifying and predicting with decision trees
Advanced graphing
Introducing ggplot2
Advanced graphs with ggplot2
Summary
Introducing Python
Starting with Python
Installing machine learning services and client tools
A quick demo of Python's capabilities
Python language basics
Working with data
Using the NumPy data structures and methods
Organizing data with pandas
Data science with Python
Creating graphs
Performing advanced analytics
Using Python in SQL Server
Summary
Graph Database
Introduction to graph databases
What is a graph?
Graph theory in the real world
What is a graph database?
When should you use graph databases?
Graph databases market
Neo4j
Azure Cosmos DB
OrientDB
FlockDB
DSE Graph
Amazon Neptune
AllegroGraph
Graph features in SQL Server 2017
Node tables
Edge tables
The MATCH clause
Basic MATCH queries
Advanced MATCH queries
SQL Graph system functions
The OBJECT_ID_FROM_NODE_ID function
The GRAPH_ID_FROM_NODE_ID function
The NODE_ID_FROM_PARTS function
The OBJECT_ID_FROM_EDGE_ID function
The GRAPH_ID_FROM_EDGE_ID function
The EDGE_ID_FROM_PARTS function
SQL Graph limitations
General limitations
Validation issues in edge tables
Referencing a non-existing node
Duplicates in an edge table
Deleting parent records with children
Limitations of the MATCH clause
Summary
Containers and SQL on Linux
Containers
Installing the container service
Creating our first container
Data persistence with Docker
SQL Server on Linux
How SQL Server works on Linux
Limitations of SQL Server on Linux
Installing SQL Server on Linux
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
- 经济数学-微积分习题解答(安徽财经大学大学数学教学研究中心)
- 不要在草台班子里拼命努力(HCJ)
- 纸上王国(邓安庆)
- Castle Rackrent(Maria Edgeworth)
- 《新东方英语》中学生2014年12月号(《新东方英语》编辑部)
- Dead Cat Bounce(Green, Norman)
- 一本书看懂电影之《公民凯恩》(张帆)
- 小红书爆款规律(吕白)
