2007/04/13
【ExcelでDB】データベースの高速化
◆◇━━━━━◆◇━━━━━◆◇━━━━━◆◇━━━━━◆◇ ┃ Excelでデータベースを学ぼう!! ┃ 2007年4月12日号 ┃ http://excel.blog.shinobi.jp/ ◆◇━━━━━◆◇━━━━━◆◇━━━━━◆◇━━━━━◆◇ もう読まないーっという方はこちらで解除出来ます。 → http://www.mag2.com/m/0000205840.html しばらくメルマガを放置していたら、まぐまぐから警告メールが 来たターボ君です^^;。 Excelでデータベースを学ぼう!!のほうも放置気味ですが よろしかったらご覧ください。 ⇒ http://excel.blog.shinobi.jp/ データベースシステムで、例えば本社にデータベースサーバーが あって、ネット経由で支社などからアクセスする場合、サーバー のパフォーマンスとは別にネットワークトラフィックがネックに なる場合があります。 特にINSERTの場合、たった100行程のデータの追加でも時間がか かって仕事にならない!と苦情が来て担当者は頭を抱えてしまう なんて事があります。 そんなときの必殺技をご紹介します。 INSERT ALL INTO table (col1, col2, col3) VALUES (val1, val2, val3) INTO table (col1, col2, col3) VALUES (val4, val5, val6) ・・・ INTO table (col1, col2, col3) VALUES (val7, val8, val9) SELECT * FROM DUAL INSERT ALLを使うと複数のINTOを一度に実行できます。 実は、これは複数のテーブルに一度にINSERTするための命令な のですが、同一のテーブルにINSERTすることも出来るのです。 データにもよりますが、100行程度のレコードならあっという 間です。これで、処理時間が1/10になったこともあります。 ただし、注意があります。 このコマンドは内部的には並列処理を行っているため、INSERT する列数の合計がデータベースの最大列数を超えるとエラーに なります。 なので、使用するときには行数をカウントしていて最大列数を 超える前に、一度SQLを実行するようにしてください。 【編集後記】 最近、「武田鉄矢・今朝の三枚おろし」という朝早くからやっ てるラジオ番組にはまってます。 先週、今週と「散るぞ悲しき」と題して、栗林忠道中将と硫黄島 守備隊のお話でした。 すごい日本人がいたんだなぁとあらためて感じました。 あの武田鉄矢さんが、自分でしゃべっていて感極まって言葉に 詰まるほどでしたから・・・。 最後まで、お読み頂きありがとうございました。 ◆◇━━━━━◆◇━━━━━◆◇━━━━━◆◇━━━━━◆◇ ┃ Excelでデータベースを学ぼう!! ┃ 2007年4月12日号 ◆◇━━━━━◆◇━━━━━◆◇━━━━━◆◇━━━━━◆◇



