Re: MagicV10+SQLServer2008R2でのデータ登録更新の処理速度について
Kurogane
投稿数: 50
簡単に例を記載しますね。
集計元となるテーブルをtable_a、更新対象のテーブルをtable_bとします。
それぞれcolumn1(キー)とcolumn2を持ち、table_bのcolumn2を
集計し、table_aのcolumn2にセットします。
update table_a
set column2 = b.column2
from table_a a inner join
(select column1 column1,
sum(column2) column2
from tabole_b
group by column1) b on a.column1 = b.column2
insert into table_a
(column1,
column2)
select b.column1,
sum(b.column2)
from table_b b
where not exists
(select *
from table_a a
where a.column1 = b.column1)
group by b.column1
updateにてレコードが既に存在する分の更新を行ない、insertでは
not existsを用いてレコードが存在しない分の更新を行ないます。
上記は単純な例ですが、複雑なテーブル参照や、1つの集計元テーブルから
複数のテーブルへの更新を行なうといった場合は、カーソルを用いる
という方法もあります。
集計元となるテーブルをtable_a、更新対象のテーブルをtable_bとします。
それぞれcolumn1(キー)とcolumn2を持ち、table_bのcolumn2を
集計し、table_aのcolumn2にセットします。
update table_a
set column2 = b.column2
from table_a a inner join
(select column1 column1,
sum(column2) column2
from tabole_b
group by column1) b on a.column1 = b.column2
insert into table_a
(column1,
column2)
select b.column1,
sum(b.column2)
from table_b b
where not exists
(select *
from table_a a
where a.column1 = b.column1)
group by b.column1
updateにてレコードが既に存在する分の更新を行ない、insertでは
not existsを用いてレコードが存在しない分の更新を行ないます。
上記は単純な例ですが、複雑なテーブル参照や、1つの集計元テーブルから
複数のテーブルへの更新を行なうといった場合は、カーソルを用いる
という方法もあります。
投票数:0
平均点:0.00
投稿ツリー
-
MagicV10+SQLServer2008R2でのデータ登録更新の処理速度について
(mysticage, 2013-2-18 11:02)
-
Re: MagicV10+SQLServer2008R2でのデータ登録更新の処理速度について
(nkmt, 2013-2-18 13:07)
- Re: Re: MagicV10+SQLServer2008R2でのデータ登録更新の処理速度について (Tanda, 2013-2-19 11:50)
- Re: MagicV10+SQLServer2008R2でのデータ登録更新の処理速度について (mysticage, 2013-2-19 14:09)
-
Re: MagicV10+SQLServer2008R2でのデータ登録更新の処理速度について
(pu_mahalo, 2013-2-18 14:27)
- Re: MagicV10+SQLServer2008R2でのデータ登録更新の処理速度について (mysticage, 2013-2-19 14:13)
-
Re: MagicV10+SQLServer2008R2でのデータ登録更新の処理速度について
(Kurogane, 2013-2-20 13:47)
- Re: MagicV10+SQLServer2008R2でのデータ登録更新の処理速度について (mysticage, 2013-2-26 16:22)
- Re: MagicV10+SQLServer2008R2でのデータ登録更新の処理速度について (mysticage, 2013-7-26 19:37)
-
Re: MagicV10+SQLServer2008R2でのデータ登録更新の処理速度について
(Kurogane, 2013-7-29 9:33)
- Re: MagicV10+SQLServer2008R2でのデータ登録更新の処理速度について (mysticage, 2013-7-30 16:04)
-
Re: MagicV10+SQLServer2008R2でのデータ登録更新の処理速度について
(nkmt, 2013-2-18 13:07)