私は次のストアドプロシージャを使用して、毎日サーバーにダウンロードされる数百種類のJSONファイルをループします。SQLサーバーのループのopenrowsetのパフォーマンス
問題は、実行するには15分かかりますが、JSONファイルを大量にするとすぐに同様のものを作成する必要があります。誰かが正しい方向に私を指揮することができますクエリの?
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