SQL Server › JSON Support in SQL Server

What are the performance considerations and limitations of querying JSON data stored as text compared to using normalized relational columns?

Advanced

Answer

Since JSON is stored as plain text, SQL Server must parse it every time a JSON function is used, which is generally slower than querying a properly indexed relational column, and while you can create a computed column based on a JSON_VALUE expression and then index that computed column, this only helps for specific, frequently queried JSON properties rather than the entire document.
ALTER TABLE Orders ADD CustomerEmail AS JSON_VALUE(OrderData, '$.email');
CREATE INDEX IX_Orders_Email ON Orders(CustomerEmail);
Real-world example A team notices queries filtering on a customer email stored inside a JSON column are slow, so they create a computed column extracting just that email value and index it, significantly speeding up that specific type of query.

Common follow-ups: When does it make more sense to fully normalize data instead of storing it as JSON?;How much overhead does parsing JSON add compared to querying a normal column directly?