Skip to content

Commit 8cc4830

Browse files
committed
in-memory OLTP in OLAP and more on json
1 parent 70b525a commit 8cc4830

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

samples/databases/wide-world-importers/documentation/root.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Overview of the sample company Wide World Importers, and the workflows addressed
2222

2323
__[WideWorldImporters Installation and Configuration](wwi-oltp-htap-installation.md)__
2424

25-
Instructions for the installation and configuration of the core database WideWorldImporters that is used for transaction processing (OLTP - Online Transaction Processing) and operational analytics (HTAP - Hybrid Transaction and Analytics Processing).
25+
Instructions for the installation and configuration of the core database WideWorldImporters that is used for transaction processing (OLTP - OnLine Transaction Processing) and operational analytics (HTAP - Hybrid Transactional/Analytical Processing).
2626

2727
__[WideWorldImporters Database Catalog](wwi-oltp-htap-catalog.md)__
2828

samples/databases/wide-world-importers/documentation/wwi-olap-sql-features.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,11 @@ Data size in a Data Warehouse can grow very large. Therefore it is best practice
8585
All of the larger fact tables are partitioned by year. The only exception is `Fact.Stock Holdings`, which is not date-based and has limited data size compared with the other fact tables.
8686

8787
The partition function used for all partitioned tables is `PF_Date`, and the partition scheme being used is `PS_Date`.
88+
89+
## In-Memory OLTP
90+
91+
(Full version of the sample)
92+
93+
WideWorldImportersDW uses SCHEMA_ONLY memory-optimized tables for the staging tables. All `Integration.`\*`_Staging` tables are SCHEMA_ONLY memory-optimized tables.
94+
95+
The advantage of SCHEMA_ONLY tables is that they are not logged, and do not require any disk access. This improves the performance of the ETL process. Since these tables are not logged, their contents are lost if there is a failure. However, the data source is still available, so the ETL process can simply be restarted if a failure occurs.

samples/databases/wide-world-importers/documentation/wwi-oltp-htap-sql-features.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ WideWorldImporters is designed to showcase many of the key features of SQL Serve
66
|-----------------------------|---------------------|
77
|Temporal tables|There are many temporal tables, including all look-up style reference tables and main entities such as StockItems, Customers, and Suppliers. Using temporal tables allows to conveniently keep track of the history of these entities.|
88
|AJAX calls for JSON|The application frequently uses AJAX calls to query these tables: Persons, Customers, Suppliers, and StockItems. The calls return JSON payloads (i.e. the data that is returned is formatted as JSON data). See, for example, the stored procedure `Website.SearchForCustomers`.|
9+
|JSON property/value bags|A number of tables have columns that hold JSON data to extend the relational data in the table. For example, `Application.SystemParameters` has a column for application settings and `Application.People` has a column to record user preferences. These tables use an `nvarchar(max)` column to record the JSON data, along with a CHECK constraint using the built-in function `ISJSON` to ensure the column values are valid JSON.|
910
|Row-level security (RLS)|Row Level Security (RLS) is used to limit access to the Customers table, based on role membership. Each sales territory has a role and a user. To see this in action, a script to demonstrate it has been provided.|
1011
|Real-time Operational Analytics|(Full version of the database) The core transactional tables `Sales.InvoiceLines` and `Sales.OrderLines` both have a non-clustered columnstore index to support efficient execution of analytical queries in the transactional database with minimal impact on the operational workload. Running transactions and analytics in the same database is also referred to as [Hybrid Transactional/Analytical Processing (HTAP)](https://wikipedia.org/wiki/Hybrid_Transactional/Analytical_Processing_(HTAP)).|
1112
|In-Memory OLTP|(Full version of the database) The table types are all memory-optimized, such that table-valued parameters (TVPs) all benefit from memory-optimization.<br/><br/>The two monitoring tables, `Warehouse.VehicleTemperatures` and `Warehouse.ColdRoomTemperatures`, are memory-optimized. This allows the ColdRoomTemperatures table to be populated at higher speed than a traditional disk-based table. The VehicleTemperatures table holds the JSON payload and lends itself to extension towards IoT scenarios. The VehicleTemperatures table further lends itself to scenarios involving EventHubs, Stream Analytics, and Power BI.<br/><br/>The stored procedure `Website.RecordColdRoomTemperatures` is natively compiled to further improve the performance of recording cold room temperatures.|

0 commit comments

Comments
 (0)