すいません、VB4しかやってないんです、VBAはやったけど(ぼそ) チラシの裏だって立派な書き込み空間なんだからねっ!資源の有効活用なんだからねっ!とか偉そうに言ってるけど、実は色々と書き残したいだけ

だからなに? どうしろと? くるみサイズの脳みそしかないあやしいジャンガリアンベムスターがさすらう贖罪蹂躙(ゴシックペナルティ)

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  632  : 記事  35  : コメント  11677  : トラックバック  143

ニュース


片桐 継 は
こんなやつ

かたぎり つぐ ってよむの

大阪生まれ河内育ちなんだけど
関東に住みついちゃったの
和装着付師だったりするの
エセモノカキやってたりするの
VBが得意だったりするの
SQL文が大好きだったりするの
囲碁修行中だったりするの
ボトゲ好きだったりするの
F#かわいいよF#

正体は会った人だけ知ってるの

空気読まなくてごめんなさいなの


わんくまリンク

C#, VB.NET 掲示板
C# VB.NET掲示板

わんくま同盟
わんくま同盟Blog


WindowsでGo言語
WindowsでGo言語


ネット活動


SNSは疲れました

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

イベント活動

プログラムの活動

両方とも、東宝……いや、んなことーはどーでもいい<おい

さて、今回のお話は、SQLServerでのパフォーマンスの話です。

あるレコードは300万件ほどあるデータ。テーブルに入ってて、別のテーブルへと全件をINSERTします。

サーバーAはCPU2個、メモリ4Gの64bit

サーバーBはCPU8個、メモリ32Gの64Bit

さて、処理を早く終えるのはどちら?

→今現在、サーバーBはサーバーAの約5倍の時間がかかってます。

で、mxbさん、はつねさん、とっちゃんさんに相談して、色々とヒントをもらいました。ステゴサウルス胡桃の脳なりに考えたというか理解したのは

首一本ごとに均等に酒を飲もうとしたとき、キングギドラが二つの酒ツボから酒を飲み干すのと、やまたのおろちが二つの酒ツボから酒を飲み干すのとでは、実はキングギドラの方が早く飲み干せるんじゃないのかな?ってこと

酒を飲むとき、キングギドラの待ち首は1本で、常に三本のうち二本は酒を飲める。片や、おろちの方は八本のうち二本しか酒が飲めないから、六本が待ち。確かに、トータルで同じ酒の量を飲む時、首の多いおろちの方が首一本分の飲む酒の量は少なくて済むけれど、首が飲める酒ツボを取り合ってしまって、結局は効率よく酒が飲めない

なら、どうすれば、やまたのおろちは酒を効率よく飲めるんだろう。簡単に考えれば、酒ツボを増やして、一つあたりの酒ツボの酒を減らして均してしまえば早くなると思う。じゃ、どうすれば、酒ツボを増やすことができるんだろうか。

来週はここら辺りを探っていかねばなるまい(^-^;;

投稿日時 : 2008年3月22日 1:56

コメント

# re: キングギドラvsやまたのおろち 2008/03/22 7:45 はつね
そだ、聞きそびれていたけどCPUの周波数は同じ?

# SQL Server 2005 Enterprise Editionでしたよね?


# re: キングギドラvsやまたのおろち 2008/03/22 8:26 ちゃっぴ
SQL server でも enterprise 環境になると tuning 必須ですからね。

max degree of parallelism とかで、CPU 制限した場合の方が速い場合はよくあります。

# re: キングギドラvsやまたのおろち 2008/03/22 9:29 はつね
> max degree of parallelism

CPU全部を使って並列プランを立てるのではなく、少しはOSやSQL Server自身がつかうCPUも余らせておくような感じですかね。
6とか指定して2CPUあまらせておいて確認してみるといいのかな。

#
首2本はお酒を飲まずお酌する側に回ったら、やまたのおろちも酒を効率的に飲めるようになりましたとさ
だったらいいねぇ

# re: キングギドラvsやまたのおろち 2008/03/22 10:57 επιστημη
いっくら首がようけあっても喉が細けりゃアタマ打ちよねぇ...


# re: キングギドラvsやまたのおろち 2008/03/22 11:35 黒龍
遅いのはかなり意外。tempdbもそれぞれx2とx8なんですよね?なんでこんなことが起こるんだろう?

# re: キングギドラvsやまたのおろち 2008/03/22 12:35 ちゃっぴ
わからないけど、たとえば同じ disk を使っていて CPU が増えることにより、sequential access が random になって大幅に速度が低下しているとか。

# re: キングギドラvsやまたのおろち 2008/03/22 15:22 中博俊
tempdb大丈夫なの?
あと、ディスクも8分割しておかないといけないよ
あとは、メモリの分割とかってのもあったような。なんだっけかなー

# re: キングギドラvsやまたのおろち 2008/03/22 16:21 片桐
CPUは石いっしょ。開発用は2個、擬似は8個、メモリも要領差しかないの。
たしかに、Max_Degreeは気になったのよね。
そしてディスクはtempdbと入れ先テーブルのDBが同じディスクで、入れる元のテーブルのDBは別ディスク。これも開発と擬似で同じ構成。

ちょっと前に書いたCXPAKETEDとか、SQL実行のSuspend とSleepが頻繁に起きていることから考えても、どうも、やまたのおろちの首がからまってるとか、ぶつかってるとか、酒飲めないで待機とか、その辺しか思いつかないのよ(汗)

おろちの動きの証拠をあつめて、対処をかんがえてかないといけないのよねー
max_degreeとしきい値についてはもうちょっといじってみる価値あるかもですね



# re: キングギドラvsやまたのおろち 2008/03/22 17:20 やまだのおろち
#呼ばれたような気がしたので(笑)。

んーと、場合によっては瓶を分ける手間と、(席とりゲームにならずに)それぞれの瓶に首をつっこませるまで、それぞれの首が飲み込んだ酒を胃の中でブレンドさせる手間ってのが、状況によってはばかにならなさそうだな、と。
あえていくつかの首を遊ばせておく方が実は効率的だったり、とかないのかなぁ。

# re: キングギドラvsやまたのおろち 2008/03/22 18:47 ちゃっぴ
> あえていくつかの首を遊ばせておく方が実は効率的だったり、とかないのかなぁ。

は、当然ありますね。

ちなみにどんな INSERT を行っているのでしょうか?

SQL Server 2005 では OPENROWSET(BULK...) なるものがあることに初めて気づいた。。。orz

# re: キングギドラvsやまたのおろち 2008/03/22 19:24 片桐
いやそれがね、フツーの

INSERT INTO hoge ( a,b,c,d) SELECT A,B,C,D from hogehoge

だったりしますですよ。。。
フツー、というのが一番怪しいんだけどさ(^-^;;;

# re: キングギドラvsやまたのおろち 2008/03/22 19:36 ちゃっぴ
それは効率的じゃないと思いますよ。
なにより、log が恐ろしいことに。

# re: キングギドラvsやまたのおろち 2008/03/22 20:24 はつね
でも、あれでしょ?
効率云々というよりも2CPUよりはやくなれゴラーなんですよね?
8CPUのマシンで2CPUしか使わない設定したら、(元のよりも)はやくなったとかありえそうな予感。

# re: キングギドラvsやまたのおろち 2008/03/22 20:43 片桐
うん、はつねさんの言うとおり<おい

ぶっちゃけ、2CPUより早く処理してくれれば問題ないですw
CPU割り当てをフルから解除すれば済む話かもしれないのだけれど、
何しろ、それをすることによるメリットおよび原因がきちんと説明できないと
本番サーバーには設定できませんので、まぁ、うん、がんばろーかなとw

SQLが効率悪いのはわかっているのですけれど、だからといって特化した処理にガチガチに組むのも、色々とオトナの諸事情がありますし……




# re: キングギドラvsやまたのおろち 2008/03/22 23:52 黒龍
こういうことって割とざらな状況なんでしょうか?
CPUでなんらかのボトルネックがあったとしても最悪等速だと思うので今の状況ってありえんとしか思えないです・・・。俺ってば頭固いのかな?

# re: キングギドラvsやまたのおろち 2008/03/23 0:08 片桐
ざらかどうかはわかんないです。

たまたま、このデータだけで発生しているので、きっと何かがあるんじゃないかとは思うけれど、うちらのとこでは今回がはじめてのケースなのは確かw

この処理が走らなければ処理ははやいんだもの。

# ????????????????????? | ???????????????????????? 2009/12/04 10:00 Pingback/TrackBack
????????????????????? | ????????????????????????

# Oakley Sunglasses Cheap 2013/03/15 6:09 http://oakleyfrogskins2.cabanova.com/
I'll call a taxi in case of need.I agreeAll that glitters is not gold.What is your plan?You set me up!And now medical care helps to keep people alive longer.Although we can't see these atoms, they really do exist.Where do you want to meet? No pain,no gain.There is a mark of ink on his shirt.

Post Feedback

タイトル
名前
Url:
コメント