Ich habe die folgende gespeicherte Prozedur, um Hunderte von verschiedenen JSON-Dateien durchlaufen, die auf den Server jeden Tag heruntergeladen werden.SQL Server Schleife openrowset Leistung
Das Problem ist, dass die Abfrage dauert gut 15 Minuten zu laufen, muss ich etwas Ähnliches für eine größere Anzahl von JSON-Dateien bald erstellen, ist jemand in der Lage, mich in die richtige Richtung in Bezug auf die Leistung zu erhöhen der Abfrage?
DECLARE @json VARCHAR(MAX) = ''
DECLARE @Int INT = 1
DECLARE @Union INT = 0
DECLARE @sql NVARCHAR(max)
DECLARE @PageNo INT = 300
WHILE (@Int < @PageNo)
BEGIN
SET @sql = (
'SELECT
@cnt = value
FROM
OPENROWSET (BULK ''C:\JSON\tickets' + CONVERT(varchar(10), @Int) + '.json'', SINGLE_CLOB) as j
CROSS APPLY OPENJSON(BulkColumn)
WHERE
[key] = ''tickets''
')
EXECUTE sp_executesql @sql, N'@cnt nvarchar(max) OUTPUT', @[email protected] OUTPUT
IF NOT EXISTS (SELECT * FROM OPENJSON(@json) WITH ([id] int) j JOIN tickets t on t.id = j.id)
BEGIN
INSERT INTO
tickets (id, Field1)
SELECT
*
FROM OPENJSON(@json)
WITH ([id] int, Field1 int)
END
END