J'ai une table avec des milliers de lignes qui ne cessent de grandir chaque jour. Une colonne a un objet JSON sur lequel j'ai besoin d'exécuter beaucoup de requêtes. Quelle est la meilleure approche?SQL Server 2016 JSON Index
Voici un exemple d'une requête:
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
est la meilleure option pour créer un index pour chaque colonne?
Exemple:
CREATE UNIQUE CLUSTERED INDEX PK_PersonView ON PersonView
(
PersonId, FirstName, LastName, DOB, Gender, ArrivalTs, Reason
);
Ou devrais-je créer des index séparés
CREATE INDEX idx_Person_FirstName
ON Messages(FirstName)
Je suis en train de construire le retour de requête possible rapide, mais actuellement cela va vraiment lent.