0
私はこれを持っていますが、うまくいきますが、完了までには13分かかります。MySQLへのMSSQLの挿入速度を向上させる
insert into openquery(portal, 'select
klient_id,
smetka_br,
smetka_datum,
smetka_izdadena_datum,
smetka_platena_datum,
smetka_int_cena,
smetka_tv_cena,
smetka_dtv_cena,
mesto_uplata,
platena_tv,
platena_int,
platena_dtv,
datum_tv,
datum_int,
datum_dtv from smetki_data_temp')
select
a.klient_id, a.barcode, a.datum_valuta, a.promena_datum, b.datum_uplata, a.iznos_INT, a.iznos_KDS, a.iznos_DTV, a.zabeleska,
a.platena_KDS, a.platena_INT, a.platena_DTV,
(Cast(godina_KDS as VARCHAR) + '-' + Cast(mesec_KDS as VARCHAR) + '-01') as datum_tv,
(Cast(godina_INT as VARCHAR) + '-' + Cast(mesec_INT as VARCHAR) + '-01') as datum_int,
(Cast(godina_DTV as VARCHAR) + '-' + Cast(mesec_DTV as VARCHAR) + '-01') as datum_dtv
from tSmetki as a
INNER JOIN tUplati as b on b.smetka_id = a.id
where a.barcode != ''
約2ミルの行があります。選択には30秒かかります。挿入には12分かかります。 INSERTで2万行を更新、@Dan Bracukで述べたように
Affected rows: 1905280
Time: 751.330s
tSmetki.IdとtUplati.smetka_idにインデックスを作成しましたか? – MKR
これは日常ですか?これをSQLジョブとして実行すると、パフォーマンスが向上する可能性があります。 – Isaiah3015
おそらく、あなたがリンクされたサーバー(あなたの場合は 'portal')を使っているからです。 SSISやSQL Serverのインポート/エクスポートユーティリティなど、さまざまな最適化を行うことができるはずです。これがオプションでない場合は、バッチ処理を検討して、リンクされたサーバー上で2m行のトランザクションを実行する必要はありません。私はETLツールが提供するものを知るためにMySQLに精通していません。 – Xedni