JSON storage in SQL Server 2017

Since XML support was introduced in SQL Server 2005, the native XML data type has been implemented as well. SQL Server 2016 introduces built-in support for JSON but unlike XML, there is no native JSON data type. Here are the reasons that the Microsoft team gave for not introducing a new data type:

  • Migration: Prior to SQL Server 2016, developers already had to deal with JSON data.
  • Cross-feature compatibility: The data type nvarchar is supported in all SQL Server components, so JSON will also be supported everywhere (memory-optimized tables, temporal tables, and Row-Level Security).
  • Client-side support: Even if a new data type were introduced, most of the client tools would still represent it outside SQL Server as a string.

They also noted that if you believe that the JSON binary format from PostgreSQL, or a compressed format, such as zipped JSON text, is a better option, you can parse JSON text in UDT, store it as JSONB in a binary property of CLR UTD, and create member methods that can use properties from that format. You can find more details about their decision at https://blogs.msdn.microsoft.com/jocapc/2015/05/16/json-support-in-sql-server-2016.

A part of the SQL Server community has expected a native data type in the SQL Server 2017 version, but the native JSON data type is still not provided.

Although the arguments mentioned make sense, a native JSON data type would be better, especially from a performance point of view. However, this requires more effort and time frames for development, and release of new features are shorter which should be also taken in account when you judge the feature. JSON support in SQL Server would be complete with a native data type, but built-in support is a respectable implementation and this is a very useful feature.

Since there is no JSON data type, JSON data is stored as text in NVARCHAR columns. You can use the newly added COMPRESS function to compress JSON data and convert it to a binary format.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.218.171.212