Blog Post

SQL Server 2016 features to look for -2

,

In Previous post we have seen the new features of SQL server 2016 in short and had a brief discussion about  ALWAYS ENCRYPTED Feature. You can Find That Post Here .

SQL Server 2016 features to look for -1

Now In The Today’s Post we will have look on 2 new features

Stretch Database

Native support for JSON

Stretch Database

If We have got a ton of data but most of it just isn’t queried Often. so we tends to archive it. many thinks that in this case partitioning helps but . sadly it  doesn’t, if want to enhance the performance you have to make sure your WHERE clause specifically excludes the partition which is archived if not then Sql server will ends up scanning all the partitions.

SQL Server 2016 will bring in a new concept called stretch database, where in you have the ability to pick a specific table and stretch it to Azure.If an application queries for the historical data, it will be retrieved from Azure.

Stretch Database is the capability to extend a database table into the Azure cloud platform. This ability to store warm and cold transaction data in Azure means that organizations don’t have to worry about having to purchase extra storage space, or being forced to permanently erase these old or infrequently used data.

Storage in Azure is cheap and the price will always go down as long as the “Cloud War” is happening between various cloud support provides like Amazon , Google,M/S .and there is no question for security. because concepts like Always Encrypted, the data which resides or in motion to Azure is secure.

But with This Microsoft has to play smarter As Per Brent Ozar

If Microsoft does not deliver better partition elimination than this feature will be LEGENDARILY BAD because scanning partitions up in Azure is going to be even worse than scanning partitions locally.

And the following questions still there

    • How will backups work?
    • How will restores work?
    • How will DBCCs work?
    • How will data be moved from on-premise to Azure?
    • Can multiple servers attach to the Azure partitions?

Support for JSON

The item titled “Add native support for JSON to SQL Server, a la XML (as in, FOR JSON or FROM OPENJSON)” is the No. 1 requested feature on the Connect site used to garner feature requests for users of SQL Server and Windows Azure SQL Database.With more than 1,000 votes and leading other items by more than a 140 votes, the item posted more than four years ago reads:

While JSON import and export is possible in SQL Server using horribly complex T-SQL code or CLR integration using the JavaScript JSON methods, such methods are system-resource intensive. It would be nice if MS could integrate JSON into SQL Server the same ways they do XML: say, a FOR JSON clause, an OPENJSON statement, etc.

It may have taken a while, but Microsoft — as it’s increasingly doing on many fronts these days — has listened and responded to its customers.

JSON— standing for JavaScript Object Notation — uses text name/value pairs to represent data, serving as a data transmission technology– easier to read and less complicated than XML.

it will be represented by the existing NVARCHAR type, used for representing variable-length strings.

as per Microsoft — they have studied the issue and decided to go the NVARCHAR type for many reasons concerning issues such as migration, cross-feature compatibility and client-side support.

It is probably a good idea to use the new ISJSON function as a check constraint on your JSON-containing nVarChar columns. If you don’t, you risk data corruption from flawed client applications inserting unparsable strings.

Querying JSON

To directly query JSON for scalar values, you can use the JSON_VALUE function. This function uses a JavaScript like notation to locate values within the JSON object. It uses the $ symbol as the object root, dot-notation for properties, and brackets for array indexes. The PostgreSQL equivalent is json_extract_path_text.

Here is a sample & simple query

IN Normal Format

Query

SELECT TOP (2)   name, database_id, source_database_id

FROM sys.databases

ORDER BY database_id;

Output

name                database_id                      source_database_id

——                  ———–                            ——————

master                   1                                         NULL

tempdb                  2                                         NULL

query using JSON

SELECT TOP (2)  name, database_id, source_database_id

FROM sys.databases

ORDER BY database_id

FOR JSON AUTO, INCLUDE_NULL_VALUES;

Output

[

{

“name”:”master”,

“database_id”:1,

“source_database_id”:null

},

{

“name”:”tempdb”,

“database_id”:2,

“source_database_id”:null

}

]

Microsoft’s plan for JSON doesn’t include everything developers want. Many believe that a dedicated JSONB style column would offer better performance. Others want support for patching JSON data instead of having to replace the document as a whole.

We will look Other feature in next post.

IF u like or want to say anything than please do it ..

Rate

You rated this post out of 5. Change rating

Share

Share

Rate

You rated this post out of 5. Change rating