SQLなら俺に訊け [無断転載禁止]©2ch.net (457レス)
SQLなら俺に訊け [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1499985653/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: デフォルトの名無しさん [] 2017/07/14(金) 07:40:53.63 ID:HFjsarQi さあ http://mevius.5ch.net/test/read.cgi/tech/1499985653/1
358: デフォルトの名無しさん [] 2024/12/30(月) 14:22:49.66 ID:y1s4zo7f SQLなんて一回描いたら何度も描き治すもんでもないからな 面倒臭がるのは怠慢 http://mevius.5ch.net/test/read.cgi/tech/1499985653/358
359: デフォルトの名無しさん [sage] 2024/12/30(月) 19:29:38.65 ID:V3PHz5v0 >>358 なおすでーー http://mevius.5ch.net/test/read.cgi/tech/1499985653/359
360: デフォルトの名無しさん [sage] 2025/01/01(水) 21:42:25.49 ID:sxxQrAOo >>359 そう何度も直すことは無いよ http://mevius.5ch.net/test/read.cgi/tech/1499985653/360
361: デフォルトの名無しさん [sage] 2025/01/01(水) 23:12:26.15 ID:21eIb2Fa へぼかったら治すでーー http://mevius.5ch.net/test/read.cgi/tech/1499985653/361
362: デフォルトの名無しさん [] 2025/01/05(日) 10:38:54.01 ID:c9RkuEF2 単にテキストエディタの機能を使いこなせずに毎度、すべてキー入力している初心者は案外、多い。 http://mevius.5ch.net/test/read.cgi/tech/1499985653/362
363: デフォルトの名無しさん [] 2025/01/05(日) 10:48:34.28 ID:8kdOFrcZ ORMなんていらん http://mevius.5ch.net/test/read.cgi/tech/1499985653/363
364: デフォルトの名無しさん [sage] 2025/01/05(日) 19:51:54.27 ID:ToFXQ1cV サブクエリ難しい http://mevius.5ch.net/test/read.cgi/tech/1499985653/364
365: デフォルトの名無しさん [sage] 2025/01/05(日) 19:52:23.20 ID:ToFXQ1cV 息をするようにSQLを書きたい http://mevius.5ch.net/test/read.cgi/tech/1499985653/365
366: デフォルトの名無しさん [sage] 2025/01/05(日) 20:49:47.84 ID:ktpqqLIO >>364 当該処理がクエリを2回以上発行することを許されてる仕様や環境なら、無理にサブクエリ1発で処理しようとせず2回以上に分けて処理するのも手だよ サブクエリって見づらいしメンテナンスしづらいし http://mevius.5ch.net/test/read.cgi/tech/1499985653/366
367: デフォルトの名無しさん [sage] 2025/01/05(日) 22:36:32.88 ID:Gf5gTRAY CTEのおかげてサブクエリの出番はめっきり少なくなったよね http://mevius.5ch.net/test/read.cgi/tech/1499985653/367
368: デフォルトの名無しさん [sega] 2025/01/06(月) 12:33:31.51 ID:HkxXvSmh >>367 CTEってなに? http://mevius.5ch.net/test/read.cgi/tech/1499985653/368
369: デフォルトの名無しさん [sage] 2025/01/06(月) 18:37:10.53 ID:xyyiC8Hr >>366 ありがとう やってみる 逆にそれでサブクエリの感覚が掴めるかもしれないと勝手な期待をしている accessとExcelVBAでやっているけど、IT素人のPC好きなおじさんがやる やってるから何分感覚がつかめない ミックさんのデータベース入門は読んでいるけど読み切れていない http://mevius.5ch.net/test/read.cgi/tech/1499985653/369
370: デフォルトの名無しさん [sage] 2025/01/06(月) 20:05:07.43 ID:PWtKQBnB >>369 そうそう、その視点や観点が本当に大事 プログラム全般そうだけど一気に書こうとするとスパゲティ化して自分でも訳わからなくなるから 必ず最小から始めて、それらをくっ付けて大きくしていくみたいな感覚が大事 http://mevius.5ch.net/test/read.cgi/tech/1499985653/370
371: デフォルトの名無しさん [sage] 2025/01/09(木) 00:01:55.02 ID:8WDo/TAk サブクエリは普通に使うだろ http://mevius.5ch.net/test/read.cgi/tech/1499985653/371
372: デフォルトの名無しさん [sage] 2025/01/11(土) 10:22:19.58 ID:ouBpeDRU サブクエリを使うクエリを分解したらたいていN+1になるしな http://mevius.5ch.net/test/read.cgi/tech/1499985653/372
373: デフォルトの名無しさん [sage] 2025/01/19(日) 01:50:01.24 ID:IALgBqxE サブクエリ使う理由ってめんどくさがったり一時領域をケチる以外に理由ないよ サブクエリを使わずに結果を出すようにした方がメンテもパフォーマンスも上がる http://mevius.5ch.net/test/read.cgi/tech/1499985653/373
374: デフォルトの名無しさん [sage] 2025/01/19(日) 02:17:21.82 ID:9/Z57kyd サブクエリの有無ごときで議論になるの笑ってしまうなw どんなちっこいアプリなんだ?電卓とか? http://mevius.5ch.net/test/read.cgi/tech/1499985653/374
375: デフォルトの名無しさん [sage] 2025/01/19(日) 06:33:56.88 ID:ugzsMDEi 1週間も経って突然貶し始める方が笑ってしまうわ http://mevius.5ch.net/test/read.cgi/tech/1499985653/375
376: デフォルトの名無しさん [] 2025/01/19(日) 09:51:50.41 ID:pfUoPKo5 どこの句のどういう使い方をするサブクエリなのか書いてくれないと、サブクエリを使うべきなのか、そうでないか答えようがない。 http://mevius.5ch.net/test/read.cgi/tech/1499985653/376
377: 警備員[Lv.1][新芽] [sage] 2025/01/19(日) 13:34:54.51 ID:bMoMF2/G SQLを複数回に分割して発行すると、その間DBに更新がないことを担保する必要がありますか? http://mevius.5ch.net/test/read.cgi/tech/1499985653/377
378: デフォルトの名無しさん [sage] 2025/01/19(日) 16:06:56.18 ID:vo12PcwL トランザクションを指定すれば? http://mevius.5ch.net/test/read.cgi/tech/1499985653/378
379: デフォルトの名無しさん [sage] 2025/01/19(日) 16:20:11.02 ID:MoFiVYUu そこはSQLを複数回に分割して発行するかどうかよりも上位のレベルで トランザクションや同時実行制御の観点から設計しておくべき事項 担保する必要性の有無は分割しようがしまいが変わらない http://mevius.5ch.net/test/read.cgi/tech/1499985653/379
380: 警備員[Lv.4][新芽] [sage] 2025/01/19(日) 18:28:02.90 ID:T6GaQrgY やはりトランザクションですね ありがとうございます!! http://mevius.5ch.net/test/read.cgi/tech/1499985653/380
381: 警備員[Lv.4][新芽] [sage] 2025/01/19(日) 18:29:15.30 ID:T6GaQrgY ちなみに、サブクエリとするか分割するかのレスに乗っかって、でした http://mevius.5ch.net/test/read.cgi/tech/1499985653/381
382: デフォルトの名無しさん [sage] 2025/01/20(月) 11:39:20.74 ID:7SyPOdKK サブクエリを使わないで、一旦チンポテーブルに書き出す方式があったよね あれなんだっけか http://mevius.5ch.net/test/read.cgi/tech/1499985653/382
383: 警備員[Lv.1][新芽] [sage] 2025/01/20(月) 18:23:14.14 ID:O4abJDGp 次の3つのフィールドで構成される複合主キーがあり (PK1, PK2, PK3) 検索キーとしてPK2とPK3だけをよく用いるとき、主キー以外にもインデックス(PK2, PK3)を作成すべきですか? http://mevius.5ch.net/test/read.cgi/tech/1499985653/383
384: デフォルトの名無しさん [sage] 2025/01/20(月) 18:55:00.26 ID:kikzz/Vc キーのバラつき具合やオプティマイザの機能にもよるから一概に不要とも作成すべきとも言えない http://mevius.5ch.net/test/read.cgi/tech/1499985653/384
385: デフォルトの名無しさん [sage] 2025/01/20(月) 18:55:26.16 ID:kikzz/Vc 実際のクエリプランを見て判断 http://mevius.5ch.net/test/read.cgi/tech/1499985653/385
386: 警備員[Lv.3][新芽] [sage] 2025/01/20(月) 19:12:32.30 ID:O4abJDGp ありがとうございます>>383です ちなみにaccessです http://mevius.5ch.net/test/read.cgi/tech/1499985653/386
387: 警備員[Lv.3][新芽] [sage] 2025/01/20(月) 19:14:05.86 ID:O4abJDGp >>3々3です accessで複合主キーを設定したとき、インデックスは自動で付与されるでしょうか http://mevius.5ch.net/test/read.cgi/tech/1499985653/387
388: デフォルトの名無しさん [sage] 2025/01/21(火) 08:53:02.94 ID:9Kz0tqcV インデックスじゃない主キーってなんだ……。 http://mevius.5ch.net/test/read.cgi/tech/1499985653/388
389: 警備員[Lv.5][新芽] [sage] 2025/01/21(火) 09:13:36.90 ID:X3sBvw4I >>388 調べてみるとそうみたいなんだけど(主キーにはインデックスが張られる)、単一主キーだと、該当キーにRequired、Uniqueなインデックスが作成されるけど、複合主キーでは個々のフィールドに個別にはインデックスが作成されてなくて それがどういうことか(インデックスが張られているか)分からなくて 分かりにくくてごめんね http://mevius.5ch.net/test/read.cgi/tech/1499985653/389
390: デフォルトの名無しさん [sage] 2025/01/21(火) 11:15:04.33 ID:+xYYoS0+ >>389 DBの構成上、主キーであれば最低限1つのインデックスは張られる それはPK1,PK2,PK3全部揃ったときにB木を辿れればいいだけなので、6(=3P3)通りのどれかだが、 何もなければ PK1->PK2->PK3 の1つのインデックスになる この場合、PK1,PK2 のセットならインデックスが使えるが、今回のように PK2, Pk3 のセットだと使えない これはクエリプランを見れば判断出来る SQLiteだとこのケースでは上記の通り というかCREATE INDEX時(CREATE TABLE時)に使われ方を予測する事は不可能なので、 DBとしては、記述通りPK1->PK2->PK3で一つ作るか、全組み合わせを作っておくかしか出来ない よく使われる検索に対して自動的にインデックスを作成して高速化してくれるDBがあるのかもしれんが俺は知らん http://mevius.5ch.net/test/read.cgi/tech/1499985653/390
391: デフォルトの名無しさん [sage] 2025/01/21(火) 11:23:25.76 ID:+xYYoS0+ >>389 > 単一主キーだと、該当キーにRequired、Uniqueなインデックスが作成されるけど、複合主キーでは個々のフィールドに個別にはインデックスが作成されてなくて これは少し勘違いしてる インデックスはあくまでB木であって、個々のフィールドやカラムとは全く別物 インデックスが当たってるかは、クエリプランで確認すべき事 http://mevius.5ch.net/test/read.cgi/tech/1499985653/391
392: 警備員[Lv.7][新芽] [sage] 2025/01/21(火) 13:20:25.85 ID:j6Q/IyUA >>389です ありがとうございます (以下Accessです) 新たにテーブルに、主キー(PK1,PK2,PK3)を作成した段階で数万件のレコードを入れ、仮に(PK1,PK3)をキーとしてSELECTで抽出をするとめちゃくちゃ遅い…(1) 上のテーブルの主キーの個々のフィールド(3つ)にインデックスを設定して(1)と同じ条件の抽出をするとかなり速い…(2) (2)のインデックスを削除して主キーと同じフィールドに複合インデックスを設定するともっと速い…(3) (1):(2):(3)=65:1.5:1 くらいの比率でした 主キーを設定しただけではとても遅かったです(65倍) なにか設定・前提に誤りがあるかもしれません http://mevius.5ch.net/test/read.cgi/tech/1499985653/392
393: 警備員[Lv.7][新芽] [sage] 2025/01/21(火) 13:21:48.40 ID:j6Q/IyUA 実行計画の出し方は調べてみます 多分見方が分かりませんがw http://mevius.5ch.net/test/read.cgi/tech/1499985653/393
394: デフォルトの名無しさん [sage] 2025/01/21(火) 16:54:19.10 ID:c07BxmkO >>392 (1)で設定した複合主キーと (3)で設定した複合インデックスとで インデックスを構成するカラムの順番は本当に同じ? http://mevius.5ch.net/test/read.cgi/tech/1499985653/394
395: 警備員[Lv.8][新芽] [sage] 2025/01/21(火) 17:55:49.71 ID:j6Q/IyUA >>394 すみません、ちょっと投稿内容に誤りがありました (1)の複合主キーと、(3)の複合インデックスをまったく同じフィールド、個数、順序とすると、(1)と同じように、複合主キーのみでインデックスを設定しないときの同じように65倍の時間が掛かりました デフォルトで設定されたインデックスと一致しているので当然なのかもしれません 先ほどの(3)の結果としてを得たのは、試行錯誤して複合インデックスから検索キーとしないフィールドを削除したもので、複合主キーのフィールド数より2つ少ないです 後出しになりすみません データの内容によっても結果は変わるでしょうし、オレ環なので諦めるしかないかなと http://mevius.5ch.net/test/read.cgi/tech/1499985653/395
396: 警備員[Lv.8][新芽] [sage] 2025/01/21(火) 18:09:31.85 ID:j6Q/IyUA 簡単のため、当初複合主キーのフィールド数を3としました http://mevius.5ch.net/test/read.cgi/tech/1499985653/396
397: デフォルトの名無しさん [sage] 2025/01/22(水) 00:08:11.72 ID:l3OLrM1a {PK1,PK2,PK3}で複合キーが定義されてる場合 検索条件が{PK1}か{PK1, PK2}か{PK1, PK2, PK3}であればどのDBMSでも大半のケースでインデックスが使われる 検索条件が{PK1, PK3}の場合はPK1のselectivity次第でインデックスが使われるものがある 検索条件が{PK2, PK3}のように一番左のカラムが含まれない場合はindex skip scanという機能が実装されてなければインデックスは使われない(Accessにはたぶん実装されてない) 他のクエリとの兼ね合いで複合主キーを構成するカラムの順序を変更できないということであれば該当クエリ用に複合インデックスを追加するのは妥当 http://mevius.5ch.net/test/read.cgi/tech/1499985653/397
398: デフォルトの名無しさん [sage] 2025/01/22(水) 00:28:31.31 ID:VcBzYOin >>396 というか何がやりたいのか不明な事になってるが、 > 検索キーとしてPK2とPK3だけをよく用いるとき、主キー以外にもインデックス(PK2, PK3)を作成すべきですか? であれば遅い(=インデックスがない)と分かったのだからインデックス作ればいいだけでは >>393 > 多分見方が分かりませんがw 見方なんて分かる必要なくて、 1. インデックスがある検索に対してクエリプランを出させる(=インデックス検索) 2. インデックスがない検索に対してクエリプランを出させる(=リニア探索) 3. 実際に自分がやりたい検索が、1,2のどちらに似てるか見る、特に先頭付近 ただインデックスが何で、どうやってDBがレコードを抽出してくるのか分かってなさそうなので、1,2が出来ない気もするが 結果で確認したければ、正しくインデックスが作成された後は、 α. SELECT * FROM mytable WHERE PK1=a AND PK2=b AND PK3=c; β. SELECT * FROM mytable WHERE PK2=b AND PK3=c; でαとβはほぼ同速になるはずだよ http://mevius.5ch.net/test/read.cgi/tech/1499985653/398
399: 警備員[Lv.3][新芽] [sage] 2025/01/22(水) 01:45:12.43 ID:x9n06qn/ >>390 >>397 ありがとうございます 最左のカラムを検索キーとするかがポイントなんですね 当初は>>390での指摘がピンときていませんでした 合間のレスで「仮に(PK1,PK3)で検索し」は迂闊でした いまは手元に試験用のコードがありませんが、最左のカラムを含んでいなかったと思います SQLをずいぶん自由に書けるようになったと思っていましたが、テーブル、インデックスの作成がこんなに大切だったと知りました… http://mevius.5ch.net/test/read.cgi/tech/1499985653/399
400: デフォルトの名無しさん [sage] 2025/01/22(水) 01:53:19.83 ID:IIgBVdb4 そもそもACCESSのクエリプラントとか、取得大変だがな http://mevius.5ch.net/test/read.cgi/tech/1499985653/400
401: デフォルトの名無しさん [sage] 2025/01/22(水) 05:04:07.48 ID:xghKhcgN ACCESSにクエリプランなんてあるん?w ファイルで配布できる必要があるとかじゃなければ、MS SQL Expressなり使った方がやりやすくない? 昔と違ってGUIツールも今は無料配布になってるし。 http://mevius.5ch.net/test/read.cgi/tech/1499985653/401
402: デフォルトの名無しさん [sage] 2025/01/22(水) 07:08:36.05 ID:VcBzYOin >>399 > 最左のカラムを検索キーとするかがポイントなんですね 違う。というか理由を理解ではなく結果を暗記しようとする辺り、文系馬鹿の匂いがするが、 とにかく、「B木」でググって記事を読め 現在のプログラミングでは基本で、そこそこ初心者が記事を書くネタになってるから、いくらでも出てくる そしてVBAにもハッシュはあるだろ。ググるとScripting.Dictionaryと出てくるが、中身は同様にB木のはずだから、 何か知らんが速いという事で済まさず、この機会にちゃんと理解しろ そしてその言い方なら、 左側が全部揃ってるかがポイント が正解になる ただ、遅くて困るのならインデックス張ればいいだけではあるが http://mevius.5ch.net/test/read.cgi/tech/1499985653/402
403: 警備員[Lv.5][新芽] [sage] 2025/01/22(水) 09:37:01.44 ID:x9n06qn/ >>402 ありがとうございます B木の「B」はBinaryでなくBalanceだったのですね B木の深さは複合キーの個数で一定となるツリーなんですね 二分木をイメージして「??」でしたが、B木の構造がイメージできればインデックスの効果が得られるか否かが分かりやすいと思いました http://mevius.5ch.net/test/read.cgi/tech/1499985653/403
404: デフォルトの名無しさん [sage] 2025/01/22(水) 10:44:07.12 ID:VcBzYOin >>403 > 二分木をイメージして「??」でしたが いやそういう問題じゃない というか相変わらずインデックスが何かさっぱり分かってないようだが、単なるリーフへの探索手段だぞ 実際はこんなキーの分け方はあり得ないが、馬鹿でも分かるように敢えて例とすると、 お前が名詞を1,000枚持ってて、あいうえお順に格納して保管してるとする これは主キーが複合キーの{PK1:苗字1文字目, PK2:苗字2文字目以降, PK3:名前}として、 石破茂を{'石','破','茂'}, 岸田文雄を{'岸','田','文雄'} と格納されてる状態と見なせる これに対して、{PK2,PK3}の検索、例えば{'田',’茂'}では全く使い物にならないのは分かるだろ。これがインデックスが機能してない状況 同様に、{PK1,PK3}の{'吉','茂'}も無理ゲーと分かるだろ。これもインデックスが機能してない状況 逆に、{PK1,PK2}の検索、{'鈴','木'}なら範囲を確定させられるだろ。これがインデックスが機能してる状況 というか言っちゃ悪いがVBA+accessってプログラマではなくExcel職人上がりも多いのでこの空回りなのだと思うが、 実際、Excel職人ならこの辺理解せずすっ飛ばして「遅いからインデックス張る」で済ませていい プログラマなら、ちゃんと理解しろ。「赤黒木」とかもお前には有用だろうよ http://mevius.5ch.net/test/read.cgi/tech/1499985653/404
405: 警備員[Lv.7][新芽] [sage] 2025/01/22(水) 10:58:55.44 ID:ZVwqoD6m B木については知らなかったが、今回の複合インデックスの件について二分木は論外だとは分かっています ちなみに、>>402ハッシュの中身がB木というのは自分の認識と異なります 字面でうまく伝わらない部分はあったと思いますが、B木を知ることができ(あえて理解とは言わない)よかったです ありがとうございました http://mevius.5ch.net/test/read.cgi/tech/1499985653/405
406: デフォルトの名無しさん [sage] 2025/01/22(水) 11:07:43.80 ID:s+SsM2Gu 中途半端な知識で間違ったことばっかり書いてるのに 人を馬鹿する自称バカではない理系おじさんは少し自重したほうがいい http://mevius.5ch.net/test/read.cgi/tech/1499985653/406
407: 警備員[Lv.7][新芽] [sage] 2025/01/22(水) 11:27:02.25 ID:ZVwqoD6m >>405 x ハッシュの中身が o Scripting.Dictionaryの中身が 文脈から分かったかもしれませんが http://mevius.5ch.net/test/read.cgi/tech/1499985653/407
408: デフォルトの名無しさん [sage] 2025/01/22(水) 11:27:27.98 ID:VcBzYOin >>405 > 今回の複合インデックスの件について二分木は論外だとは分かっています いやそうじゃねえ そもそも論外でもないし、インデックスが二分木でも問題ないし、この場合には二分木もB木の一種だよ B木とは深さ方向が一定になるように調節されてるものの呼称であり、実際は二分木が多数だろうし まあ君に理解する気がないのは分かったし、実際に理解しなくても済む人達も大勢居るのも事実 ただプログラマならどのみちいつか引っかかるから、この機会にちゃんと理解しといた方が得だぞという話 君がどうするかは君が決める事 http://mevius.5ch.net/test/read.cgi/tech/1499985653/408
409: デフォルトの名無しさん [sage] 2025/01/22(水) 11:42:36.84 ID:a9tNcWhf >B木とは深さ方向が一定になるように調節されてるものの呼称であり、実際は二分木が多数だろうし 君が論外 http://mevius.5ch.net/test/read.cgi/tech/1499985653/409
410: デフォルトの名無しさん [sage] 2025/01/22(水) 12:42:33.57 ID:VcBzYOin >>407,409 そうじゃない、というかそこは問題ではない というのが分からないのが問題なのだろうが、君は全てを「具象」で捉えて「暗記」してるだけだろ、これは典型的な文系のやり方 本来は「抽象」で捉えて「理解」しないといけない項目 「B木」も「二分木」も(昔ながらのハッシュ関数を使った)「ハッシュ」も別物ではなくて、 同一の物を分類してるだけ、しかも直交もしてない 話を戻すと、問題は、 ・DBのインデックス動作が分からない ・どうインデックスが作成されるかも分からないし、 ・どういうクエリならインデックスが使われるのかも分からない なんだろ 正攻法:(=プログラマ向け) ・インデックスの実装の仕方(の一つ)を理解する これにより、インデックスに何が必要か、インデックスで何が出来、何が出来ないかを直感的に判断出来るようになる (実際の実装では高速化の為にあれこれやってるだろうが、これは今回の目的に対しては全くどうでもいい事) 迂回策: ・クエリプランで毎回確認する とはいえ読めるのかあれ? あれを読む努力をするくらいなら、上記のインデックスを理解する努力の方が実になるはず その上で、このDBではどうなのか?の判断の為に使うものだろあれは 迂回策次善案:(=Excel職人向け) ・クエリが遅い場合はインデックスを作るようにする だと思うよ まあ実際Excel職人っぽいしどうぞお好きにだが、 でも今回理解しておかないと次回以降も同じ所で引っかかり続けるだけだから、 それが嫌なら数時間~数日かけてでもこの機会に理解するしかないでしょ http://mevius.5ch.net/test/read.cgi/tech/1499985653/410
411: デフォルトの名無しさん [sage] 2025/01/22(水) 12:49:28.79 ID:VcBzYOin >>410訂正 × 同一の物 ○ 同種の物 無駄に絡まれそうなので念のため まあ俺がどう論外である事を証明したところで、 君がインデックスを理解する事には繋がらないよ 君は努力の方向を間違ってる (ネットにはこのタイプも多いけども) http://mevius.5ch.net/test/read.cgi/tech/1499985653/411
412: デフォルトの名無しさん [sage] 2025/01/22(水) 13:23:48.02 ID:0peR6PAs どんなにアスペな言い訳しようが君がバカだという事実に変わりはないよ http://mevius.5ch.net/test/read.cgi/tech/1499985653/412
413: 警備員[Lv.8][新芽] [sage] 2025/01/22(水) 13:46:46.67 ID:ZVwqoD6m >>405です 途中、どうも複合主キーの検索が遅く、複合主キーかフィールドを2つ削除して と書きましたが、少し理解するうちに、フィールドを削除せずとも順序を入れ替えることで高速化したこと また、複合主キーの最左から順に一連の(部分)フィールドで検索できない場合は、別途インデックスを設定することで効果が得られることを確認しました 理解不足は否めませんが、実用上問題がないレベルとなったので、これでよしとします ありがとうございました http://mevius.5ch.net/test/read.cgi/tech/1499985653/413
414: デフォルトの名無しさん [sage] 2025/01/22(水) 18:46:15.47 ID:VcBzYOin >>413 > 複合主キーの最左から順に一連の(部分)フィールドで検索できない場合は、別途インデックスを設定することで効果が得られることを確認しました 当たり前、というかDBの使い方の初段階で説明/理解すべき事柄 > 途中、どうも複合主キーの検索が遅く、複合主キーかフィールドを2つ削除して > と書きましたが、少し理解するうちに、フィールドを削除せずとも順序を入れ替えることで高速化したこと そうじゃない ひととおり設計を理解した上で弄くり回して理解を深めるのなら身に付くが、 今の君のように、何も理解してない状態で試行錯誤したところで時間の無駄でしかないよ (それよりは記事を漁って理解するまで何度も読み込む努力をした方が何倍もいい) とはいえ、現実問題としてaccessの実アプリの方が優先なのは分かる 半年に一度くらいしかSQLも書かないのなら今の状態もありだ ただ、毎日SQLを書いてる状況なら、どのみちいつか理解しなければ不便で仕方ないだけなので、 出来るだけ早いうちに理解を深めておくべき 例えばさ、>>383に戻ると、(この事を言ってるのかもしれんが) 複合主キーを(PK1, PK2, PK3)ではなく、 (PK2, PK3, PK1)としてテーブルを作成しておけば、今回のインデックスを別に作成する必要はなかったろ だからテーブル作成時の時点で、将来どういうクエリが発行され、インデックスがどう適用されるかも設計されてるし、 逆に今の君のような状態では、適切なテーブル設計は出来ないんだよ というか、 > 検索キーとしてPK2とPK3だけをよく用いるとき の場合はむしろ(PK2, PK3, PK1)とするのが普通で、 つまり今回はテーブル設計を間違えてて、それは君がインデックスが何たるかを理解してないから 勿論追加でインデックス張ればクエリは高速にはなるけども、修正の仕方が正しいわけではないよ http://mevius.5ch.net/test/read.cgi/tech/1499985653/414
415: デフォルトの名無しさん [sage] 2025/01/22(水) 21:30:12.00 ID:o3lkJXbH おっさん、文章が長いな。もっと簡潔に書きなさい。あなたの文章にインデックス貼ってクエリもチューニングした方が良いぞ http://mevius.5ch.net/test/read.cgi/tech/1499985653/415
416: デフォルトの名無しさん [sage] 2025/01/22(水) 23:15:16.32 ID:J/9pPL5e 絵に書いたような老害だなw http://mevius.5ch.net/test/read.cgi/tech/1499985653/416
417: デフォルトの名無しさん [sage] 2025/01/22(水) 23:17:45.52 ID:J/9pPL5e ありゃ「描いた」だぞと老害に指摘されそうだなw http://mevius.5ch.net/test/read.cgi/tech/1499985653/417
418: デフォルトの名無しさん [sage] 2025/01/22(水) 23:29:43.66 ID:I1bb5L41 老害でも技術力があれば匿名掲示板では役立つけどどう見てもないから救いようがない 絶対干されてるタイプ http://mevius.5ch.net/test/read.cgi/tech/1499985653/418
419: デフォルトの名無しさん [sage] 2025/01/23(木) 19:03:57.14 ID:0iiPrNry どうでもいいけど、制約とインデックスを同一として扱ってるのがモヤるわ ユニーク制約と主キー制約をインデックスで処理しないDBMSはみたことないとしても http://mevius.5ch.net/test/read.cgi/tech/1499985653/419
420: デフォルトの名無しさん [sage] 2025/01/23(木) 19:56:56.31 ID:hJ60cV1T お前の方が色々混同してそうだが http://mevius.5ch.net/test/read.cgi/tech/1499985653/420
421: 警備員[Lv.1][新芽] [sage] 2025/01/23(木) 23:23:26.10 ID:5wOSbPSv さ…さすが〜! し…知らなかった〜! す…すごーい! せ…センスい〜ぃ! そ…そうなんだ〜! (「合コンさしすせそ」より) http://mevius.5ch.net/test/read.cgi/tech/1499985653/421
422: デフォルトの名無しさん [sage] 2025/01/23(木) 23:29:29.44 ID:rNgwBkvb 制約の話で思い出したがAccessの場合は foreign key制約を設定すればインデックスが自動で出来たはず (PK1, PK2, PK3)で構成される複合主キーがあって 検索キーとして(PK2, PK3)を利用したいということなら PK1と(PK2, PK3)は違う親テーブルから主キーを引き継いでるんだろうから そこにインデックスを張らないという選択はほぼ無いな http://mevius.5ch.net/test/read.cgi/tech/1499985653/422
423: デフォルトの名無しさん [sage] 2025/01/24(金) 04:28:21.32 ID:agkokgy5 383以降を見る限り、そんな高級な話ではなく、まるっきり分かってなかっただけだろ そして(PK2,PK3,PK1)と出来なかった理由の推定なら、そこは(PK1,PK2)とPK3とくくるべき http://mevius.5ch.net/test/read.cgi/tech/1499985653/423
424: デフォルトの名無しさん [sage] 2025/01/24(金) 11:19:27.52 ID:SzuokRLj 分かってないのになぜ無理して絡もうとするのが http://mevius.5ch.net/test/read.cgi/tech/1499985653/424
425: デフォルトの名無しさん [sage] 2025/02/03(月) 18:36:54.12 ID:hEyRnoXc PostgreSQLを使っているのですが、 更新前のデータも参照したいので、 更新処理を、元のデータに変更を加えたデータを追記し、更新元のデータに最新ではないフラグを付ける形でやっています。 新しくカラムを追加したのですが、更新処理の変更を忘れて、更新すると新しいカラムがデフォルト値に戻されてしまうバグを作ってしまいました。 既存の行をコピーして、primary keyと変更したいカラムだけ変更する方法ってありませんか? http://mevius.5ch.net/test/read.cgi/tech/1499985653/425
426: デフォルトの名無しさん [sage] 2025/02/03(月) 23:14:40.68 ID:k1KW9LUA >>425 >既存の行をコピーして、primary keyと変更したいカラムだけ変更する方法ってありませんか? この質問はバグにより作成されたデータの復旧作業方法として質問してる? それとも一般的にそういう方法ないかということ? あるいはカラム追加やカラム名の変更があっても更新処理のSQLを修正しなくてもいいようにする方法を聞いてる? >更新前のデータも参照したいので、 ここで言いってる”参照”は外部キーとして他のテーブルから参照するという意味? それとも単に更新履歴が閲覧できればいいという意味? http://mevius.5ch.net/test/read.cgi/tech/1499985653/426
427: デフォルトの名無しさん [sage] 2025/02/06(木) 00:29:05.51 ID:4njYbkok >>425 あるよ selectしたものを使ってupdateすればいい http://mevius.5ch.net/test/read.cgi/tech/1499985653/427
428: デフォルトの名無しさん [] 2025/02/07(金) 21:07:33.75 ID:lNWVt+S0 >>425 トリガーというものがあります http://mevius.5ch.net/test/read.cgi/tech/1499985653/428
429: デフォルトの名無しさん [] 2025/02/07(金) 21:08:11.88 ID:lNWVt+S0 >>425 https://www.postgresql.jp/docs/9.4/sql-createtrigger.html http://mevius.5ch.net/test/read.cgi/tech/1499985653/429
430: デフォルトの名無しさん [sage] 2025/02/07(金) 22:21:05.36 ID:mS2jfvem むしろトリガーの変更を忘れてバグったんじゃないの? http://mevius.5ch.net/test/read.cgi/tech/1499985653/430
431: デフォルトの名無しさん [sage] 2025/02/07(金) 23:13:03.59 ID:El81lTJA > PostgreSQLでは、トリガ動作として、ユーザ定義関数の実行しか認めていません。 > 標準では、多数の他のSQLコマンドを実行させることができます。 > 例えば、トリガ動作としてCREATE TABLEを実行させることも可能です。 > この制限を回避する方法は簡単です。必要なコマンドを実行するユーザ定義関数を作成すればよいのです。 糞仕様杉ワロタ http://mevius.5ch.net/test/read.cgi/tech/1499985653/431
432: デフォルトの名無しさん [] 2025/02/08(土) 11:50:00.86 ID:+3qBIV3v > この制限を回避する方法は簡単です。必要なコマンドを実行するユーザ定義関数を作成すればよいのです。 この方針は正しいと思うけどな こういうセキュリティに敏感な場所は出入口を一ヶ所に絞るのは基本だよ http://mevius.5ch.net/test/read.cgi/tech/1499985653/432
433: デフォルトの名無しさん [sage] 2025/02/08(土) 12:46:18.46 ID:3VVdck+P いや色々おかしいよお前、多分DB板出身だろうから帰れ 逆に質問者もDB屋ならDB板の方が合ってるとも思うが http://mevius.5ch.net/test/read.cgi/tech/1499985653/433
434: デフォルトの名無しさん [sage] 2025/02/08(土) 13:11:35.92 ID:fsW85FYF 正しいわけないだろw Postgresの仕組み的に関数化が必要なら内部的にラップしとけばいいだけ 実行権限をトリガに対して設定できないとか非標準を維持し続けるほど大した意味はない http://mevius.5ch.net/test/read.cgi/tech/1499985653/434
435: デフォルトの名無しさん [sage] 2025/02/09(日) 03:19:16.45 ID:BAiRqfzU ここの人らはNoSQLはどういう扱いなの http://mevius.5ch.net/test/read.cgi/tech/1499985653/435
436: デフォルトの名無しさん [sage] 2025/02/09(日) 12:18:58.85 ID:kD9FDD3o 俺個人としては同じDB枠の扱い プライマリキーやインデックス等、DBとしての使い方は同じで、 それを設定する言語が、SQLか、或いは一般プログラミング言語か、という程度だから だからこのスレも俺には「DBなら俺に訊け」でもいいんだが、このスレはテンプレないんだな 俺が主流派かどうかは分からない SQLじゃないとヤダ、って奴が多ければスレを分けるべきだろうが、 正直分けるほど人いないし、NoSQLもここで聞いていいのでは?答える奴が居るかは知らんが ただ、383も425も、SQLではなく、DBを分かってないから話がおかしくなってるので、 実質SQLではなくDBの質問になってるし、NoSQLでも結果的に同じだと思うよ 個別DBに特化した話等なら、DB板に行った方がいい ただ、DB板の連中はプログラミングをしない/出来ないようなので、 432のように、プログラマから見たら明らかにトンチンカンな回答が返ってくる それでもDB固有の問題には詳しいだろうよ http://mevius.5ch.net/test/read.cgi/tech/1499985653/436
437: デフォルトの名無しさん [] 2025/02/09(日) 18:18:30.19 ID:qhqoX22r >>431 トリガーそのものにロジックは必要ないとしてトリガーを仕様に取り込んだせいでそうなっただけ http://mevius.5ch.net/test/read.cgi/tech/1499985653/437
438: デフォルトの名無しさん [] 2025/02/09(日) 18:19:47.93 ID:qhqoX22r >>434 Oracle以外はあとからOracleDBに追従したから、元のクソ仕様のせいで制限がたくさんある。 http://mevius.5ch.net/test/read.cgi/tech/1499985653/438
439: デフォルトの名無しさん [sage] 2025/02/09(日) 18:31:02.14 ID:mMq7ancL 出た! DB板の荒らし 通称ボラクル君w http://mevius.5ch.net/test/read.cgi/tech/1499985653/439
440: デフォルトの名無しさん [sage] 2025/02/09(日) 22:11:42.79 ID:uTje1YE2 >>436 おまえ>>383のやり取りで嘘ばっか書いてたやつじゃん 反省したのか? http://mevius.5ch.net/test/read.cgi/tech/1499985653/440
441: デフォルトの名無しさん [sage] 2025/02/09(日) 22:42:05.59 ID:JhqniwEL ならお前が正しいと思うことを書けばよいだけでは? http://mevius.5ch.net/test/read.cgi/tech/1499985653/441
442: デフォルトの名無しさん [sage] 2025/02/10(月) 00:33:14.69 ID:VZ2XQokR nosqlは独自に覚えなきゃいけないことが多すぎるうえに制約も多い awsとazureで同じ設計が通じるわけでもないし http://mevius.5ch.net/test/read.cgi/tech/1499985653/442
443: デフォルトの名無しさん [] 2025/02/10(月) 11:53:19.06 ID:Z13/KCo3 KVSですね判ります http://mevius.5ch.net/test/read.cgi/tech/1499985653/443
444: デフォルトの名無しさん [sage] 2025/02/10(月) 12:41:14.64 ID:y2n5AJNm ベンダー違っても中身は全部Redisという場合もあるし単純なセッション管理にKVSを使うとかならベンダー違っても基本的に同じ設計になるしユースケース次第でいろいろ NoSQLって言うだけだとリレーショナルじゃないくらいの意味しかなくて広すぎるから細かい話は一括りにはできない http://mevius.5ch.net/test/read.cgi/tech/1499985653/444
445: デフォルトの名無しさん [sage] 2025/05/11(日) 23:41:50.22 ID:SmeYoeAy ミックさんの達人SQLは名著だと思うんだけど、関係が体であるとしている点については、群ですらないというamazonレビューの指摘の方が正しいように思うんだよね。ただ自分は文系で群とかちゃんと勉強したことないのであまり自信はない。数学できる人教えて。 http://mevius.5ch.net/test/read.cgi/tech/1499985653/445
446: デフォルトの名無しさん [] 2025/05/12(月) 19:12:28.13 ID:RxQ7/dSc >>445 集合は数学とは違うよ http://mevius.5ch.net/test/read.cgi/tech/1499985653/446
447: デフォルトの名無しさん [sage] 2025/05/13(火) 14:41:24.56 ID:C/NhftFY SQLで無限集合出来んかな http://mevius.5ch.net/test/read.cgi/tech/1499985653/447
448: デフォルトの名無しさん [] 2025/05/14(水) 00:52:49.17 ID:qxlPxgMn なんで havingとwhereは使い分ける必要があるの? 全部whereで済むように仕様を直してほしい http://mevius.5ch.net/test/read.cgi/tech/1499985653/448
449: デフォルトの名無しさん [sage] 2025/05/14(水) 01:47:48.71 ID:tUJULNxS 意味違うと思うぞ。whereだけじゃ足りないんじゃね http://mevius.5ch.net/test/read.cgi/tech/1499985653/449
450: デフォルトの名無しさん [sage] 2025/05/14(水) 01:55:11.10 ID:tUJULNxS 評価対象が行とグループ 評価タイミングも違うとchatGPTが教えてくれた http://mevius.5ch.net/test/read.cgi/tech/1499985653/450
451: デフォルトの名無しさん [sage] 2025/05/14(水) 06:22:22.00 ID:qNLCsgAG そんなこともAIに訊かなきゃわからないんかよw http://mevius.5ch.net/test/read.cgi/tech/1499985653/451
452: デフォルトの名無しさん [sage] 2025/05/14(水) 08:46:47.35 ID:e7a03hqN スレ主じゃないので LLM勉強になるぞ http://mevius.5ch.net/test/read.cgi/tech/1499985653/452
453: デフォルトの名無しさん [] 2025/05/14(水) 11:40:16.61 ID:Ran/8XYC グループ化と関係なくHAVINGを使っているんだろうなw http://mevius.5ch.net/test/read.cgi/tech/1499985653/453
454: デフォルトの名無しさん [] 2025/05/14(水) 11:41:17.83 ID:Ran/8XYC >>452 AIチャットは間違いを指摘してくれない http://mevius.5ch.net/test/read.cgi/tech/1499985653/454
455: デフォルトの名無しさん [sage] 2025/05/14(水) 12:56:57.46 ID:1iop83U8 LLMの勉強する前に対人会話の勉強しよう? http://mevius.5ch.net/test/read.cgi/tech/1499985653/455
456: デフォルトの名無しさん [sage] 2025/05/14(水) 13:29:13.49 ID:e7a03hqN お前らもネラーだからLLMと大差ないぞ 教科書レベルの話はLLMさんが正確さ http://mevius.5ch.net/test/read.cgi/tech/1499985653/456
457: デフォルトの名無しさん [sage] 2025/05/15(木) 09:52:35.44 ID:3t3KbsMR 結局、>>445ってどう? 素人考えでは、群の条件のうち、「任意の元に対する逆元が存在する(逆元も関係の元である必要がある)」を、関係および関係上の演算は満たさないようにも思うんだけど。 http://mevius.5ch.net/test/read.cgi/tech/1499985653/457
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.022s*