Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
JSON Usage and
Performance in
SQL Server 2016
NEO SQL Server User Group | Bert Wagner | April 4, 2017
1
Background
● BI developer at Progressive Insurance for 6+ years
● I love JSON - I use it in APIs, hardware projects, websi...
Overview
● What is JSON?
● Why use JSON?
● When is it appropriate to store JSON in SQL?
● Usage examples:
○ ETL and report...
5
What does JSON look like?
{
“Make” : “Volkswagen”,
“Year” : 2003,
“Model” : {
“Base” : “Golf”,
“Trim” : “GL”
},
“Colors”...
6
Why use JSON?
Easy Processing
var car = { "Make" : "Volkswagen" };
console.log(car.Make);
// Output: Volkswagen
car.Year...
7
Why use JSON?
APIs
8
Why use JSON?
Storage Size
<Car>
<Make>Volkswagen</Make>
<Year>2003</Year>
<Model>
<Base>Golf</Base>
<Trim>GL</Trim>
</M...
9
Appropriate Usage
Staging Data
● Load data raw
● Validate
● Transform
10
Appropriate Usage
Error Logging
ErrorDate Component Data
2016-03-17 21:23:39 GetInventory { "Make : "Volkswagen", "Year...
11
Appropriate Usage
Non-Analytical Data
● Sessions
● User preferences
● Non-frequently changing variables
○ Admin emails
...
12
Inappropriate Usage
High-Performance Requirements
13
Inappropriate Usage
Validation/Integrity Requirements
14
Inappropriate Usage
Being Lazy
Demos
1. ETL and reporting
2. Database object maintenance
3. Performance parsing
15
Performance Results
16
● Indexes on computed columns are the solution
● Faster than C# libraries in some cases
Recap
17
● Many good (and bad) uses for JSON in SQL exist
● JSON can be fully manipulated in SQL Server 2016
● Performance...
Thank you!
● Twitter: @bertwagner
● Blog: https://bertwagner.com
● Email: bertwagner@bertwagner.com
18
Json usage and performance in sql server 2016
Upcoming SlideShare
Loading in …5
×

Json usage and performance in sql server 2016

713 views

Published on

JSON has become the standard format for transmitting serialized data in today's websites, APIs, and applications. With SQL Server 2016, Microsoft has made it easy to work with JSON strings in T-SQL. This session is an introduction to the new JSON functions added in SQL Server 2016. We will use T-SQL query examples to learn how these new functions can be used to parse, create, and modify JSON data. We will also discuss when it's appropriate to store JSON in databases as well as how to optimize performance when using these new functions. By the end of this presentation DBAs and developers will know how to efficiently work with JSON data in SQL Server 2016.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Json usage and performance in sql server 2016

  1. 1. JSON Usage and Performance in SQL Server 2016 NEO SQL Server User Group | Bert Wagner | April 4, 2017 1
  2. 2. Background ● BI developer at Progressive Insurance for 6+ years ● I love JSON - I use it in APIs, hardware projects, websites ● I also love SQL and relational database structures ● Slide, demos, code is available on bertwagner.com 3
  3. 3. Overview ● What is JSON? ● Why use JSON? ● When is it appropriate to store JSON in SQL? ● Usage examples: ○ ETL and reporting ○ Database object maintenance ○ Performance parsing 4
  4. 4. 5 What does JSON look like? { “Make” : “Volkswagen”, “Year” : 2003, “Model” : { “Base” : “Golf”, “Trim” : “GL” }, “Colors” : [“White”, “Pearl”, “Rust”], “PurchaseDate” : “2006-10-05T00:00:00.000Z” }
  5. 5. 6 Why use JSON? Easy Processing var car = { "Make" : "Volkswagen" }; console.log(car.Make); // Output: Volkswagen car.Year = 2003; console.log(car); // Output: { "Make" : "Volkswagen", "Year" : 2003" } Javascript:
  6. 6. 7 Why use JSON? APIs
  7. 7. 8 Why use JSON? Storage Size <Car> <Make>Volkswagen</Make> <Year>2003</Year> <Model> <Base>Golf</Base> <Trim>GL</Trim> </Model> <Colors> <Color>White</Color> <Color>Pearl</Color> <Color>Rust</Color> </Colors> <PurchaseDate> 2006-10-05 00:00:00.000 </PurcaseDate> </Car> { “Make” : “Volkswagen”, “Year” : 2003, “Model” : { “Base” : “Golf”, “Trim” : “GL” }, “Colors” : [“White”, “Pearl”, Rust”], “PurchaseDate” : “2006-10-05T00:00:00.000Z” } XML: 225 Characters JSON: 145 Characters
  8. 8. 9 Appropriate Usage Staging Data ● Load data raw ● Validate ● Transform
  9. 9. 10 Appropriate Usage Error Logging ErrorDate Component Data 2016-03-17 21:23:39 GetInventory { "Make : "Volkswagen", "Year" : 2003} 2016-03-19 12:59:31 Login { "User" : "Bert", "Referrer" : "http://google.com", "AdditionalDetails" : "Invalid number of login attempts" }
  10. 10. 11 Appropriate Usage Non-Analytical Data ● Sessions ● User preferences ● Non-frequently changing variables ○ Admin emails ○ Static dropdown menus
  11. 11. 12 Inappropriate Usage High-Performance Requirements
  12. 12. 13 Inappropriate Usage Validation/Integrity Requirements
  13. 13. 14 Inappropriate Usage Being Lazy
  14. 14. Demos 1. ETL and reporting 2. Database object maintenance 3. Performance parsing 15
  15. 15. Performance Results 16 ● Indexes on computed columns are the solution ● Faster than C# libraries in some cases
  16. 16. Recap 17 ● Many good (and bad) uses for JSON in SQL exist ● JSON can be fully manipulated in SQL Server 2016 ● Performance is fast, especially with computed column indexes
  17. 17. Thank you! ● Twitter: @bertwagner ● Blog: https://bertwagner.com ● Email: bertwagner@bertwagner.com 18

×