X



トップページDB@2ch掲示板
1002コメント327KB
Microsoft SQL Server 総合スレ 11 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001NAME IS NULL
垢版 |
2016/05/29(日) 16:50:08.13ID:dqKJQypQ
Microsoft SQL Server (Transact-SQL) の総合スレッドです。

・Microsoft 公式サイト
http://www.microsoft.com/japan/sql/

過去スレとかめんどいから誰か適当に貼って
0697NAME IS NULL
垢版 |
2018/02/15(木) 23:18:27.60ID:???
>>696
NOT EXISTSをINNER JOINにするのは無理だし
MySQLはNested Loopしか使えないからね
他の一般的RDBとは事情が違うよ
0698NAME IS NULL
垢版 |
2018/02/15(木) 23:21:53.94ID:???
>>695
NOT EXISTSのほうがパフォーマンスいいことのほうが多いけど
LEFT JOINが悪手ってわけでもないと思うけどな

少なくとも質問者はLEFT JOINを理解してない風なので
そっちからはじめたほうがいい
0699689
垢版 |
2018/02/16(金) 00:03:31.60ID:???
みなさまありがとうございます。
LEFT JOINでできるとは思いませんでした…頭が硬いですね。
教えていただいたNOT EXISTSも調べたところまさにやりたいことでした。
何とかなりそうです。
ありがとうございました。
0700NAME IS NULL
垢版 |
2018/02/16(金) 00:31:27.89ID:???
>>695
環境、データ、インデックスとかによって違うからお前さんみたいに盲信してるのが一番ヤバイ
0701NAME IS NULL
垢版 |
2018/02/16(金) 01:49:40.19ID:nepixz1J
経験上LEFT JOIN でIS NULLのほうが速い場合がほとんど
0703NAME IS NULL
垢版 |
2018/02/16(金) 05:41:07.18ID:???
>>692さんみたいな書き方を良くするんですが、これは遅いのですか?
0704NAME IS NULL
垢版 |
2018/02/16(金) 05:43:00.22ID:???
あっ、ただ自分の場合は

「WHERE NOT 顧客ID IN (SELECT 顧客ID FROM 売上テーブル)」

ではなく

「WHERE 顧客ID NOT IN (SELECT 顧客ID FROM 売上テーブル)」

と書きます。
0705NAME IS NULL
垢版 |
2018/02/16(金) 10:17:03.78ID:???
売上げテーブルに顧客IDでインデックス貼ってあればそんなに遅くない気もする
0706NAME IS NULL
垢版 |
2018/02/16(金) 10:51:09.70ID:???
692は自分だけど、後でみなさん言われるとおり

SELECT * FROM 顧客テーブル
WHERE NOT EXISTS (SELECT TOP 1 FROM 売上テーブル WHERE 顧客ID=顧客テーブル.顧客ID)

のほうが速そうだな
0707NAME IS NULL
垢版 |
2018/02/16(金) 12:21:10.95ID:???
速いとか遅いとか気にしたいんならDBが適切にメンテされているかを考えるべきやな
SQLの表記のゆれなど考えるだけ無意味
0708NAME IS NULL
垢版 |
2018/02/16(金) 15:52:24.98ID:???
NOT INの場合はパフォーマンス以前に
顧客IDがNOT NULLじゃないと意図した結果が得られない可能性がある

NOT NULLなら意図した結果が得られるけど、速度はDBの最適化に依存
INの最適化レベルが高いDBならNOT EXISTSと同程度の速度に場合もある
でもそうならない場合もあるからこういうケースでは基本使わない
0710NAME IS NULL
垢版 |
2018/02/16(金) 20:39:05.84ID:yNJxj2Lb
>>700
環境、データ、インデックスとかによって違うからお前さんみたいに
テストした環境でLEFT JOINが速いからLEFT JOINにしてしまう奴が一番ヤバイ
0711NAME IS NULL
垢版 |
2018/02/16(金) 20:59:00.37ID:???
>>710
うまい返ししたつもりなんだろうけどアホ晒してるだけやぞww
0712NAME IS NULL
垢版 |
2018/02/16(金) 21:08:47.07ID:yNJxj2Lb
>>711
普通に答えただけだけどうまかったか?w
マジかwセンスあんな俺www
0713NAME IS NULL
垢版 |
2018/02/16(金) 21:32:20.04ID:???
誰か試してみてよ
0714NAME IS NULL
垢版 |
2018/02/16(金) 21:53:09.91ID:???
単純なnot inならouter joinと同じ実行計画吐いたきがする
0715NAME IS NULL
垢版 |
2018/02/16(金) 22:16:06.50ID:yNJxj2Lb
>>714
だからたまたまその時その環境でそういう実行プランが作られたという経験を
後生大事に今生の知識として胸にしまいこんでも無駄だと言っておろうが

SQLはいつだってよりシンプルにより直接的にやりたい事を表現してる様に書くべきなんや
0716NAME IS NULL
垢版 |
2018/02/16(金) 23:37:28.84ID:???
>>712
誰もうまい返しとは言ってないぞ
日本語の理解力もないとな w
0717NAME IS NULL
垢版 |
2018/02/17(土) 00:10:23.40ID:RRaJ3TQN
>>716
は?こっちこそお前がうまい返しと言ったとは言っとらんが???
異次元の理解力だなお前…
というかアスペだなwww
0718NAME IS NULL
垢版 |
2018/02/17(土) 00:12:55.27ID:???
ここもID強制表示にしてほしいな
0719NAME IS NULL
垢版 |
2018/02/17(土) 00:21:22.92ID:???
>>717
> というかアスペだなwww
自己紹介乙w
0720NAME IS NULL
垢版 |
2018/02/17(土) 15:34:21.57ID:lIYg2W3z
5chはROM専みたいな筆不精は、長文が書かれていると、時間をかけて書いていると思い込む。

世の中、超速で読み書きができる人間がいるのだよ。
0723NAME IS NULL
垢版 |
2018/02/18(日) 01:31:05.23ID:JhkmGsBQ
>>721
オリジナルです
0724NAME IS NULL
垢版 |
2018/02/18(日) 01:32:48.22ID:JhkmGsBQ
仕事でやってるなら仕事が異常に速いひとを知ってるはずだけどな。並の人間の20倍、30倍くらい仕事が速い人もいる。
0725NAME IS NULL
垢版 |
2018/02/19(月) 05:02:12.33ID:???
1.5人月で見積もられた仕事を1日で片付ける人か。
さすがにそれは見たことないわw
0726NAME IS NULL
垢版 |
2018/02/19(月) 12:21:33.79ID:???
めちゃくちゃキーボード打つの速そう
0727NAME IS NULL
垢版 |
2018/02/19(月) 19:22:31.89ID:???
30人にやらせれば余裕で1日で終わるというのに
0728NAME IS NULL
垢版 |
2018/02/19(月) 19:45:21.08ID:???
>>726
そんな思考だから仕事遅いんだよ
できる人できない人の違いすら理解できてない
0729NAME IS NULL
垢版 |
2018/02/19(月) 20:26:20.69ID:???
だな
キーボード打つ速度とかマジ関係ない
0730NAME IS NULL
垢版 |
2018/02/19(月) 20:33:52.86ID:md3NX5hc
仮に1.5人月のコードを5000行とすると
1日でそれ書いて、さらに仕様書とかも書いてテストもするんやで?
めちゃくちゃ打つの速いやん
0731NAME IS NULL
垢版 |
2018/02/19(月) 20:40:21.60ID:???
今どき行数で考えるなよ
0732NAME IS NULL
垢版 |
2018/02/19(月) 20:55:39.42ID:md3NX5hc
>>731
何で考えても書く行数は変わらんのだけどw
0733NAME IS NULL
垢版 |
2018/02/19(月) 21:14:39.42ID:???
無能な働き者の手による大量の無駄なコードは有能な怠け者の手による洗練された短いコードに劣る
0734NAME IS NULL
垢版 |
2018/02/19(月) 22:24:25.26ID:md3NX5hc
な?具体的に数字だされると速いやろw
0735NAME IS NULL
垢版 |
2018/02/19(月) 23:38:27.02ID:???
>>732
724が言ってるような並の人間より仕事が20倍30倍速いやつってのは
並の人間が5000行書かないと実現出来ない処理を200行程度書くだけで実現したりできるわけ
キーボードだってできるだけ打たなくていい方法を考える

見積もり時に書く行数がほぼ固定されてるような仕事してるなら
できるだけそこから早く抜け出すことだな
0736NAME IS NULL
垢版 |
2018/02/20(火) 07:11:59.70ID:D0Bn3/BK
>>735
それコードが圧縮されとるだけやんwコードゴルフかw
コードは20倍圧縮されても作業にかかる時間は速くなっとらんでそれwww
0737NAME IS NULL
垢版 |
2018/02/20(火) 07:20:13.02ID:???
典型的な無能の発想だな
0738NAME IS NULL
垢版 |
2018/02/20(火) 08:05:15.51ID:oDlAdTII
お前らはどうしてスキルないくせに突飛な主張してマウントとりたがるんや?
俺は笑えるからこうして楽しんどるけど一般的にはみっともないだけやでw
0739NAME IS NULL
垢版 |
2018/02/20(火) 14:51:54.91ID:???
どれだけ優秀な人間だろうと、1.5人月で見積もった仕事を1日で片付けたらな
そもそもの見積もりがぼったくりすぎるだけだな
0740NAME IS NULL
垢版 |
2018/02/20(火) 17:42:37.73ID:???
>>736
コードを圧縮て
斜め上の発想だね
0741NAME IS NULL
垢版 |
2018/02/20(火) 17:49:18.93ID:???
メタプログラミングやコードジェネレーションを考えればいいと思うよ
できるやつは無駄を省いて機械に仕事をさせる
Paul GrahamのLispの話と同じ
0742NAME IS NULL
垢版 |
2018/03/03(土) 09:21:09.95ID:???
新進気鋭の「グラフデータベース」って用途が思いつかないな
0743NAME IS NULL
垢版 |
2018/03/03(土) 16:40:26.84ID:???
RDBはグラフと相性悪いからな
用途が思いつかないうちは使う必要ない
0744NAME IS NULL
垢版 |
2018/03/03(土) 19:29:07.99ID:???
ビッグデータ()とかバズりたい奴向けやろ
0745NAME IS NULL
垢版 |
2018/03/03(土) 21:51:50.18ID:???
一昔前の技術で言えば多次元DBと同じようなもん
RDBみたいにあらゆる所で使われる技術ではない
0746NAME IS NULL
垢版 |
2018/03/03(土) 21:52:38.80ID:???
グラフデータベース=ビッグデータ()
とか言ってると恥ずかしいよ
0747NAME IS NULL
垢版 |
2018/03/04(日) 01:22:04.38ID:elOR/YZE
何年前の話題やねんw
0748NAME IS NULL
垢版 |
2018/03/06(火) 20:30:45.91ID:Y3UcuCKK
間違えて全データ消してしまったんですが
ldf/mdfファイルから消す直前のデータに戻す方法ってありますか?
0749NAME IS NULL
垢版 |
2018/03/06(火) 22:48:19.99ID:???
バックアップあるなら戻せばいいじゃん?
リカバリモデルにもよるけど
0750NAME IS NULL
垢版 |
2018/03/07(水) 00:02:46.51ID:/Gdd1MyZ
bakファイルがなくてldf/mdfファイルだけの状態です
0752NAME IS NULL
垢版 |
2018/03/13(火) 12:58:28.97ID:jwO7/+7T
2017 Expressへ32bit windows7接続出来ますか?
0754NAME IS NULL
垢版 |
2018/03/14(水) 07:45:47.09ID:znnrpK8K
ありがとうございました。
WINDOWS認証ですが18456エラーが出ます、あとLOGを見ると明示的に指定されたデータベースを開けませんでした。
とあります、何が悪いのでしょうか?
今までは2005 EXPRESSでした。
0755NAME IS NULL
垢版 |
2018/03/14(水) 13:40:26.89ID:???
何時のVerからかは忘れたが、今はマシン名\インスタンス名の形式で指定してやらんと繋がらない
例えばlocalhost\SQLEXPRESS
0756NAME IS NULL
垢版 |
2018/03/14(水) 15:02:13.68ID:znnrpK8K
>>755そうですか?試してみます、ありがとうございました。
0757NAME IS NULL
垢版 |
2018/03/14(水) 19:11:25.05ID:???
>>754
そのエラーコード以外に状態コードが出てるでしょ
それ込みでググればだいたい原因分かるよ

Error: 18456, Severity: 14, State: 38. <―このStateの部分

メッセージから推測するとPermissionに問題ないなら
そのログインに指定されてるDefault Databaseがないんじゃないのかな?
存在するデータベースを指定してみれば切り分けできる
0758NAME IS NULL
垢版 |
2018/03/23(金) 16:35:09.86ID:???
SQL Server 2017 Express の localdb のみをインストールし、コマンドプロンプトから
sqllocaldb start MSSQLLocalDB
として開始しようとすると、
「プロシージャ エントリ ポイント BCryptKeyDerivation がダイナミック リンク ライブラリ bcrypt.dll から見つかりませんでした。」
と出て失敗します。
対処方法はありますか? Windows7 64bit です。
SQLServer2017構成マネージャーにも何も出てこないし、
SQL Server Management Studio で (localdb)\MSSQLLocalDB としても接続できず困っています。
0760NAME IS NULL
垢版 |
2018/03/23(金) 21:28:54.62ID:???
>>759 ありがとうございます。

bcrypt.dll ファイル自体は system32 と SysWOW64 のどちらのフォルダにも存在しています。
SQL Server 2017 Express は、そもそも Windows7 はサポート外で、ただし localdb だけならいける、と
いうことなのでやってみたけど、やっぱダメなのか・・
SQL Server Management Studio をちょっと勉強したかったのだが。
0761NAME IS NULL
垢版 |
2018/03/24(土) 10:11:24.87ID:???
>>760
「ただしlocaldbだけなら〜」はどこからの情報なのか
0762NAME IS NULL
垢版 |
2018/03/24(土) 14:01:15.39ID:???
>>761
これです→ http://diy-kagu.hatenablog.com/entry/2017/08/09/155801
記事は2016だけど、2017でも大丈夫だろうと。
自分の環境特有の理由かもしれない。
もう少しやってみてダメなら 2017 をアンインストールして 2016 で再度やってみる。
SQLの勉強でなくて、SQL Server Management Studio を勉強したい。
0764NAME IS NULL
垢版 |
2018/03/26(月) 10:12:43.42ID:???
>>763 ありがとうございます。
2017バージョンの localDB と SSMS をアンインストール後、
2014バージョンの localDB と SSMS を入れ、SSMS から接続までできました。
これで SSMS の勉強ができます。
0765NAME IS NULL
垢版 |
2018/03/27(火) 21:04:57.51ID:???
SQL Server 2016 expressで特定のテーブルのアクセスが異常に遅いのですが、何か原因はありますか?

特定のテーブルの情報
・データ50万件 (select count(*)だけで10秒かかる)
・頻繁にインサートしている
・主キーを設定していない

プログラムでDBに接続側がタイムアウトになるくらい何かが起きているようです。
0766NAME IS NULL
垢版 |
2018/03/28(水) 13:15:59.84ID:???
そら主キーなかったら遅いだろ
0767NAME IS NULL
垢版 |
2018/04/17(火) 14:13:45.26ID:???
sp_who2 をすると、サーバーに繋ぎに来てるコンピュータ名やプログラム名が見れますが
ドメインユーザー名を取得することできませんか。

SQL認証で、ユーザー/パスを全員共通にしてあるんですけど
各接続SPIDに対するドメインユーザー名が判別できるとありがたいんですが。

Windows認証だったら判別つくのですが、プログラムはSQL認証で使いたいです。
(ユーザーがもし SSMS で繋ぎにきたときにテーブル全開示になっちゃうのを防ぐため)
0769NAME IS NULL
垢版 |
2018/04/19(木) 12:38:19.26ID:???
>>765
俺、そのケースで散々パフォーマンスチューニングだのインデックス再構築だの設計変更だのしてたが、
最終的なオチはExpressのデータファイルの10GB制限に引っかかっててインデックス検索で1MB単位で容量の削除、自動拡張を繰り返してた、
というケースがあった。
今でも当時のことを思い出すと赤面するぐらい恥ずかしい思い出。
0770NAME IS NULL
垢版 |
2018/04/19(木) 23:59:08.45ID:???
自動拡張はともかく、容量の削除ってなんだ?
0771NAME IS NULL
垢版 |
2018/04/20(金) 00:29:36.06ID:???
>>770
インサートで限界を突破して自動拡張が停止
→ロールバックされて容量が元に戻る
→ギリギリ容量が残ってるので自動拡張が…
以下、タイムアウトするまで(あるいは何とか入りきるまで)延々繰り返し

みたいな(ちょっと詳細省いたけど
0772NAME IS NULL
垢版 |
2018/04/21(土) 11:37:33.55ID:???
自動拡張されたデータファイルのサイズはロールバックしても自動的に縮小されたりしなかったと思うんがだが
自動拡張に出来なくて空きがないならエラーで帰ってくるから、タイムアウトまで延々待たされるなんて事も無かったと思うけど
0774NAME IS NULL
垢版 |
2018/05/03(木) 17:13:22.69ID:???
SQL Server の参考書でいいやつってどれ?
SQL の文法解説じゃなくて、SQL Server 独特の文化とか、SSMS の操作法とか、そのあたりを学びたい。
0775NAME IS NULL
垢版 |
2018/05/03(木) 18:24:13.53ID:aGiZKSfN
>>774
公式DLの自習書シリーズが最強だと思う
ボリュームが多いが参考書臭さがなく実務より
0776NAME IS NULL
垢版 |
2018/05/03(木) 18:25:55.90ID:aGiZKSfN
>>774
公式DLの自習書シリーズが最強だと思う
ボリュームが多いが参考書臭さがなく実務より
0777NAME IS NULL
垢版 |
2018/05/03(木) 19:44:18.01ID:03ggByZ2
>>774
あまりない。そこがSQL Serverの厳しいところ。
0778NAME IS NULL
垢版 |
2018/05/03(木) 22:41:41.95ID:???
>>775 おお! 無料でこんなのあるんだ、ありがとう!
>>777 オラクルよりもマイナーなのかな?
0779NAME IS NULL
垢版 |
2018/05/03(木) 23:43:56.18ID:brE82I5/
>>778
自習書は日本マイクロソフトが日本の会社に作らせたもの。

ただし手抜きや説明の偏り、一部は間違っているが、日本マイクロソフトのサポートの方もこれを参考にしている。

マイクロソフトはどの製品も作りっぱなしでマニュアルは自動翻訳のよくわからないものばかり。

Management StudioについてはどのRDBMSより経験がなくても直感的にわかりやすい。
0780NAME IS NULL
垢版 |
2018/05/04(金) 01:38:57.38ID:l3Y7dHLE
>>774
SQL Server 2005、2008以降は大きく変わっていないから、特に翔泳社の本は役に立つよ。

最近のSQL Server本は本当に役に立たない。特にマイクロソフト公式本はひどい。

秀和システムの赤い本もひどい。
0782NAME IS NULL
垢版 |
2018/05/04(金) 09:42:04.84ID:l3Y7dHLE
>>781
0783NAME IS NULL
垢版 |
2018/05/04(金) 10:54:05.67ID:???
>>782
>マイクロソフトはどの製品も作りっぱなしでマニュアルは自動翻訳のよくわからないものばかり。
0784NAME IS NULL
垢版 |
2018/05/04(金) 13:58:18.36ID:l3Y7dHLE
>>783
マイクロソフトのサイトを見たことがないの?
0785NAME IS NULL
垢版 |
2018/05/04(金) 14:04:11.53ID:???
>>784
ごめんね自動翻訳なんて見ないんだ
0787NAME IS NULL
垢版 |
2018/05/04(金) 15:59:47.61ID:???
M$日本の公式ドキュメントは「これは自動翻訳で生成されました」だらけなんだが
>>785はggrもしないらしい
0788NAME IS NULL
垢版 |
2018/05/04(金) 16:06:01.60ID:???
>>787
英語のドキュメント読むに決まってんだろ何言ってんの?
0789NAME IS NULL
垢版 |
2018/05/04(金) 16:12:20.05ID:???
>>787
ググった結果英語のドキュメントが出てこない世界に住んでるんだねすごいね
0790NAME IS NULL
垢版 |
2018/05/04(金) 20:10:03.98ID:???
789の世界のgoogleは日本語の結果のみ表示ができないらしい
0791NAME IS NULL
垢版 |
2018/05/04(金) 22:23:50.48ID:l3Y7dHLE
その英語もひどいから意味がない。
0793NAME IS NULL
垢版 |
2018/05/05(土) 17:00:07.44ID:T1SL703t
>>792
ユーザーにわからせようとはしてない。外国人は基本的に不親切だから、この説明でわからない方が悪いというスタンス。
0795NAME IS NULL
垢版 |
2018/05/10(木) 20:41:14.88ID:7P381X6c
自動拡張されたデータを削除してもファイルサイズが大きいままなのですがどうすればサイズを小さくできますか?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況