O/Rマッピングツールって最近たまに使いますよね。

O/Rマッピングツールが自動生成したSQLをログに出力したりするわけですが、これが、1行で物凄い桁数のSQLを吐き出してくれたりします。いままで、50000桁くらいのSQL吐き出してくれたことがあります。なのでA5:SQL Mk-2では100000桁まで表示できるようにしています。

O/Rマッピングツールの作るSQLってアブナイ… ^^;)。

しかし、良い後輩をお持ちですね。ウチではだれも手伝ってくれません。:-P (2008.03.13 21:31:38)

ZIGENのプラグイン開発 for Eclipse

ZIGENのプラグイン開発 for Eclipse

2008.03.13
XML
DBViewerには、2種類のSQLFormatterが搭載されています。

1つは、 blancoSqlFormatter

もう1つは、DBViewer独自のFormatterです。
DBViewer独自といっても、私ではなく、会社の後輩が作っています。
※私には作れません^^w

今日はその2つのFormatterの性能差(あくまでも一例です)を書いておきたいと思います。


とあるプロジェクトで、整形すると4000行近くなる長いSELECT文を書いた
後輩がおりまして、、その整形の時間を計測してみてました。






JDK1.4.2
DBViewer1.0.7(リリース前)
SQLFormatter 1.0.0v20080313(リリース前)
BlancoFormatter 0.0.3 (最新版ではありません)



性能結果


BlancoFormatter:約30秒~40秒
DBViewerFormatter(改良前):約10秒

想像以上に性能差があり、びっくりしました。


それで計測したところ、

DBViewerFormatter(改良後):約4秒~6秒

すばらしい!!、 やるな後輩!!

また、字句解析する際に、offsetやlength情報なども付与してもらっており、
今後の開発するかもしれない、「SQLのアウトライン表示」、「マーカー」機能など・・・


あとがき
そもそも、普通、4000行のSELECT文は書かないよね~
そんな長いSELECTが必要になるのは、テーブル構造が問題だね。
Viewとか、Functionに置き換えができないのか、見てみたのですが、
どうしても無理そうでした。(やっぱりテーブルの持ち方が悪い)
そもぞも、バッチで必要なデータに加工すればいいのに・・・
どうしてもオンラインでデータを抜きたいらしい・・・






お気に入りの記事を「いいね!」で応援しよう

Last updated  2008.03.13 20:17:09
コメント(4) | コメントを書く


■コメント

お名前
タイトル
メッセージ
画像認証
上の画像で表示されている数字を入力して下さい。


利用規約 に同意してコメントを
※コメントに関するよくある質問は、 こちら をご確認ください。


4000行はないけれど、  
松-boolean  さん

Re:4000行はないけれど、(03/13)  
ZIGEN_M  さん
松-booleanさん
こんばんわ、ZIGENです。


>O/Rマッピングツールって最近たまに使いますよね。

>O/Rマッピングツールが自動生成したSQLをログに出力したりするわけですが、これが、1行で物凄い桁数のSQLを吐き出してくれたりします。いままで、50000桁くらいのSQL吐き出してくれたことがあります。なのでA5:SQL Mk-2では100000桁まで表示できるようにしています。

>O/Rマッピングツールの作るSQLってアブナイ… ^^;)。


5万行ですか・・・・・
そんなに長いSQLだと、性能悪そうですね・・・

基本的にSQLは自由に書きたいし、
SQLレベルでの性能チューニングもしたいので、
O/Rマッピングツールは実践に投入したことが無いのです^^。

>しかし、良い後輩をお持ちですね。ウチではだれも手伝ってくれません。:-P

無償で手伝ってくれる人は、
なかなかいないですよねー。

(2008.03.13 23:20:43)

Re[1]:4000行はないけれど、(03/13)  
松-boolean  さん
>5万行ですか・・・・・
>そんなに長いSQLだと、性能悪そうですね・・・

 あ、いや、5万行ではなく、5万桁です。念のため。SQLどころかJavaでも5万行は辛いっすよ ^^;)。

>基本的にSQLは自由に書きたいし、
>SQLレベルでの性能チューニングもしたいので、
>O/Rマッピングツールは実践に投入したことが無いのです^^。

 自分も、O/Rマッピングツールは好きではないです。やはりSQLは自由に書きたいですね。
 しかし最近思うのが、みんな意外とSQLを書けないっていうこと。まあ確かに、副照会が2段も3段もネストしたり、その中で group by してたりとかすると結構大変ですよね。JavaやVB.netが普通に書ける人でも、SQLだと構文の理解自体で既に怪しいって人も意外といたりするようです。
 こういう人たちをフォローする機能とかが必要なのかな…とか思います。
(2008.03.16 13:52:48)

Re[2]:4000行はないけれど、(03/13)  
ZIGEN_M  さん
こんにちは、ZIGENです。

そ、そうですよね^^;
5万行のわけは無いですよね・・・^^






>>5万行ですか・・・・・
>>そんなに長いSQLだと、性能悪そうですね・・・

> あ、いや、5万行ではなく、5万桁です。念のため。SQLどころかJavaでも5万行は辛いっすよ ^^;)。

>>基本的にSQLは自由に書きたいし、
>>SQLレベルでの性能チューニングもしたいので、
>>O/Rマッピングツールは実践に投入したことが無いのです^^。

> 自分も、O/Rマッピングツールは好きではないです。やはりSQLは自由に書きたいですね。
> しかし最近思うのが、みんな意外とSQLを書けないっていうこと。まあ確かに、副照会が2段も3段もネストしたり、その中で group by してたりとかすると結構大変ですよね。JavaやVB.netが普通に書ける人でも、SQLだと構文の理解自体で既に怪しいって人も意外といたりするようです。
> こういう人たちをフォローする機能とかが必要なのかな…とか思います。
-----
(2008.03.18 15:42:46)

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

×

Calendar

Comments

名前なし@ Re:テーブルのデータをエクセル風に編集できない?(03/27) ExcelでOracle,MySQLのデータを取得/更新…
ZIGEN@ Re:いつも使ってます!!(04/14) ヘタグラマさん こんにちは^^ コメ…
ヘタグラマ@ いつも使ってます!! いつも便利に使ってます。 もう手放せな…
★みゆきち★@ 性感エステってもったいないよね ムラムラってきたら性感エステに通ってた…
ZIGEN_M @ Re[2]:4000行はないけれど、(03/13) こんにちは、ZIGENです。 そ、そうです…

Category

Profile

ZIGEN_M

ZIGEN_M

Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: