【发布时间】:2016-08-23 18:36:00
【问题描述】:
我有一张包含数千行的表格,并且每天都会不断增长。一列有一个 JSON 对象,我需要对其运行大量查询。最好的方法是什么?
这是一个查询的示例:
SELECT
PersonId,
AccountNumber,
JSON_VALUE(M.message, '$.PID.PID_5.PID_5_1') as FirstName,
JSON_VALUE(M.message, '$.PID.PID_5.PID_5_2') as LastName,
JSON_VALUE(M.message, '$.PID.PID_7.PID_7_1') as DOB,
JSON_VALUE(M.message, '$.PID.PID_8.PID_8_1') as Gender,
JSON_VALUE(M.message, '$.PV1.PV1_44.PV1_44_1') As ArrivalTs,
JSON_VALUE(M.message, '$.PV2.PV2_3.PV2_3_2') as Reason
FROM
dbo.Messages M
为每一列创建索引的最佳选择是什么?
例子:
CREATE UNIQUE CLUSTERED INDEX PK_PersonView ON PersonView
(
PersonId, FirstName, LastName, DOB, Gender, ArrivalTs, Reason
);
或者我应该创建单独的索引
CREATE INDEX idx_Person_FirstName
ON Messages(FirstName)
我正在尝试构建可能的快速查询返回,但目前运行速度非常慢。
【问题讨论】:
标签: json sql-server-2016