板検索:
Microsoft SQL Server 総合スレ 11 (560)
まとめビュー
1
NAME IS NULL[]   投稿日:2016/05/29 16:50:08  ID:dqKJQypQ.net
Microsoft SQL Server (Transact-SQL) の総合スレッドです。

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

過去スレとかめんどいから誰か適当に貼って


2
NAME IS NULL[sage]   投稿日:2016/05/29 17:26:44  ID:???.net(482)
・過去スレ

Microsoft SQL Server 総合スレ 10

Microsoft SQL Server 総合スレ 10(レス数6で落ち)
Microsoft SQL Server 総合スレ 10

Microsoft SQL Server 総合スレ 9
データベース板の別スレッドへ

Microsoft SQL Server 総合スレ 8

Microsoft SQL Server 総合スレ 7
データベース板の別スレッドへ

Microsoft SQL Server 総合スレ 6
データベース板の別スレッドへ

Microsoft SQL Server 総合スレ 5
データベース板の別スレッドへ

Microsoft SQL Server 総合スレ 4
データベース板の別スレッドへ

Microsoft SQL Server 総合スレ3【MS SQL】
データベース板の別スレッドへ

MS SQL Server 総合スレ2
データベース板の別スレッドへ

3
NAME IS NULL[sage]   投稿日:2016/05/29 23:40:39  ID:???.net(482)
おつ

4
NAME IS NULL[]   投稿日:2016/05/30 02:56:20  ID:bu03jhsY.net
日本マイクロソフト人事本部シニアマネージャー(名ばかり管理職)の西川昌邦(さいかわまさくに)は犯罪者にして殺人犯だ!!
「あなたのような従業員は会社のパフォーマンスにとってマイナスなので早く死んでください」
などと自殺教唆を公然と行った!! その結果人が死んだ!!
丁寧に言えば何を言ってもいいというものではない!!これはヤクザや借金取りが脅迫をする時に
「いついつまでに金一億円をお振り込みください。命が惜しければ間違った判断をなされないことを期待します」
と発言するのと同じレベルだ!!
しかもそれを注意してやったら、「世間はわれわれの味方だ。文句があるなら訴えてきたらよろしい。メールを電番を公開したければ
どうぞご自由に。世論はわれわれを賛辞するするメールを送付するだろう」
などとイカ様気取りも大概にしろという発言を行った!!
抗議先 日本マイクロソフト人事本部 西川昌邦
メール:masaikaw●microsoft.com
(●を@に置き換えて)
電話:09025411718

5
NAME IS NULL[sage]   投稿日:2016/05/30 03:37:26  ID:???.net(482)
こういう異常者を切る眼力を持つ物が人事をやってる
さすがMSw

6
NAME IS NULL[sage]   投稿日:2016/06/02 14:04:22  ID:???.net(482)
せっかくなのでVS2015スレから転載

201 名前:デフォルトの名無しさん [sage] :2016/06/02(木) 04:43:03.97 ID:FKKiP5go
>194
公開されたぞ

SQL Server 2016 Developer (x64) - DVD (Japanese)

リリース日: 2016/6/1
ファイル名: ja_sql_server_2016_developer_x64_dvd_8778351.iso
言語: Japanese
SHA1: 3FACA4CB652E6209376B3843274C573E8161659B

7
NAME IS NULL[sage]   投稿日:2016/06/03 09:13:02  ID:???.net(482)
SQL Server Management Studioは間に合わなかったの?
preview版(英語)をダウンロードするようになってるんだが

8
NAME IS NULL[sage]   投稿日:2016/06/04 00:55:23  ID:???.net(482)
ssmsで完全バックアップを取りたいのですが保存先がサーバ側(リモート)ディレクトリしか指定できないようです
リモートに保存したあとコピーするなどではなく、直接ローカルに保存したいのですが可能でしょうか?
コメント2件

9
NAME IS NULL[sage]   投稿日:2016/06/04 03:00:44  ID:???.net(482)
>8
DBMSの話で普通、ローカルとかリモートとかってのはサーバ(DB)側からみての話だと思うが

BACKUP DATABASE コマンドでUNCパスが指定できるから、ネットワーク共有ファイルに保存はできるはず
ただし、サーバサービスを動かしてるアカウントに権限が必要だが
コメント2件

10
NAME IS NULL[sage]   投稿日:2016/06/04 05:02:11  ID:???.net(482)
>9
ありがとうございます
ネットワーク共有以外の方法は無いでしょうか?
例えばdb単位でdumpした奴をクライアント側(ssms)に保存するような機能は無いでしょうか
スクリプト生成も試したのですが互換性がどうのこうのと言われ使い物にならなかったです
bcpはスキーマを取れないようだし
コメント1件

11
NAME IS NULL[sage]   投稿日:2016/06/04 16:33:35  ID:???.net(482)
>10
バックアップデータがネットワークを介さずにクライアント端末に瞬間移動する機能を期待しているの?
コメント1件

12
NAME IS NULL[sage]   投稿日:2016/06/04 16:36:44  ID:???.net(482)
bcpにフォーマットファイル作成するオプションがあるが

13
NAME IS NULL[sage]   投稿日:2016/06/04 17:21:12  ID:???.net(482)
>11
瞬間移動?
mysqldump的なことです
コメント1件

14
NAME IS NULL[sage]   投稿日:2016/06/04 22:31:57  ID:???.net(482)
>13
サーバ上にあるデータベースのデータをクライアント側にバックアップしたい。でもネットワークは経由したくない。

って話じゃないの?
コメント1件

15
NAME IS NULL[sage]   投稿日:2016/06/05 00:12:16  ID:???.net(482)
>14
>ネットワークは経由したくない
そんなこと言ってないです
>9さんが言っているのはDB鯖にネットワークドライブをマウントさせてそのにバックアップを取ったら?と言っているんですよね
そうではなくmysqldumpのようにクライアント側にダイレクトにdumpさせたいので同等の機能はないんでしょうかと訪ねているのです
コメント1件

16
NAME IS NULL[sage]   投稿日:2016/06/05 01:16:00  ID:???.net(482)
>15
UNCで指定っていってるんだから、ネットワークドライブとしてマウントする必要ないでしょ。

CIFS使うことがいやな理由は?
コメント1件

17
NAME IS NULL[sage]   投稿日:2016/06/05 01:28:17  ID:???.net(482)
設定が分からないとか面倒とかでは。。

SSMS を動かしているクライアント上に、SSMS が直接バックアップファイルを作成できるか?
ってことなら 不可 でいいんだよね?
コメント1件

18
NAME IS NULL[sage]   投稿日:2016/06/05 01:36:16  ID:???.net(482)
>16
失礼
会社の鯖なんで共有の設定できないです
>17
>設定が分からないとか面倒とかでは。。
会社の鯖なんで弄れないです
やっぱ無理なんすね
ダメだなsqlserver
コメント1件

19
NAME IS NULL[sage]   投稿日:2016/06/05 01:44:06  ID:???.net(482)
>18
共有の設定するのはクライアント(端末)側でしょ?
コメント1件

20
NAME IS NULL[sage]   投稿日:2016/06/05 01:47:06  ID:???.net(482)
>19
そうなんですか!
windows無知すぎて恥ずかしい…
ありがとうございます!

21
NAME IS NULL[sage]   投稿日:2016/06/05 03:14:58  ID:???.net(482)
そもそもバックアップはDB管理者のタスクで、一般ユーザーのタスクじゃないから

クライアント側にデータ吐きたいだけならBCPで良いだろ
サーバの設定変えられんとか、アカウント変更できんとネットワーク共有使えん可能性が高いんだが
コメント1件

22
NAME IS NULL[sage]   投稿日:2016/06/05 03:49:38  ID:???.net(482)
>21
私はDBAではないです
bcpはddl吐けないですよね?
データのコピーならbcpで十分なのはわかってます

23
NAME IS NULL[sage]   投稿日:2016/06/05 14:14:34  ID:???.net(482)
そもそもなんのためにそんなことしようとしてるんだろう。

24
NAME IS NULL[sage]   投稿日:2016/06/05 17:20:39  ID:???.net(482)
ddlは吐かないがレイアウト定義は出力できる
ddlを吐いても、一般ユーザーにテーブル作成する権限があるとは限らんし

ホント、なんのためにddl付きのデータが欲しいんだ
コメント1件

25
NAME IS NULL[sage]   投稿日:2016/06/05 18:08:24  ID:???.net(482)
>24
>ddlを吐いても、一般ユーザーにテーブル作成する権限があるとは限らんし
>ホント、なんのためにddl付きのデータが欲しいんだ

そこは気にしなくていいです
ただmysqldumpと同じ機能がないことにショック

26
NAME IS NULL[sage]   投稿日:2016/06/05 19:03:54  ID:???.net(482)
だからバックアップはDB管理者の仕事だって言ってるだろ
クライアントにバックアップ保存するようなコンセプトじゃないんだよ

27
NAME IS NULL[sage]   投稿日:2016/06/05 19:28:34  ID:???.net(482)
(不正アクセスを試みてるようにしか見えない件)

28
NAME IS NULL[sage]   投稿日:2016/06/05 21:34:55  ID:???.net(482)
>8
無理です
SQL-Server にはそう言う機能がないので MySQL でも使ってて下さい

で、終了でしょ
コメント1件

29
NAME IS NULL[sage]   投稿日:2016/06/06 10:14:44  ID:???.net(482)
>28
yes

30
NAME IS NULL[sage]   投稿日:2016/06/11 01:01:56  ID:???.net(482)
バックアップは、というか基本的に全てのSQLはSQLServer上で動いてるから、SQLServerのプロセスの実行アカウントがアクセス出来る場所にしかアクセスできない
sqlcmdやbcpなんかのユーティリティでクライアントにデータ持ってきてるのは、結果セットをユーティリティがネットワーク経由してくれてるだけ、
バックアップファイルは結果セットじゃないんで無理

という認識でいる。あってるかどうかは知らない
mysqlは
SQLServerサービスの実行アカウントがNetworkServiceかDomainAdminsのユーザならUNCでいけるかな?

インメモリのテーブルにレプリケーションのハブリッシュテーブル指定できないとか対応しとけよMSのあほー
使えそうと思ったのに
コメント1件

31
NAME IS NULL[sage]   投稿日:2016/06/11 05:32:54  ID:???.net(482)
>30
> という認識でいる。
終わった話題に間違ったこと書くアホ w

32
NAME IS NULL[]   投稿日:2016/06/11 06:03:14  ID:bjKxFQNF.net
SQL server2012について、
コンピュータ名の変更が必要となっています。
すでにセットアップ済み、実行中のものなんですが、
コンピュータ名の変更を行うとSQL serverにログインできなくると見聞きしています。

msdnには以下のように書いており、
https://msdn.microsoft.com/ja-jp/library/ms143799(v=sql.110).aspx

まだ試してはいないのですが、他に必要な作業というのはあるのでしょうか?
また、ログインできなくる原因というのはSQL serverが管理している情報で、旧コンピュータ名のものがあるからという認識なのですが、それがどれほどあるかがわかりません。
コメント1件

33
NAME IS NULL[sage]   投稿日:2016/06/11 18:17:16  ID:???.net(482)
>ログインできなくる原因というのはSQL serverが管理している情報で、旧コンピュータ名のものがあるから
接続できなくなる理由はほとんどクライアント側だと思うが
すくなくともDBサーバー側ではそこに書いてある通りだろ
あとはBrowserとかリスナとかのサーバ側でもネットワーク設定の問題か
コメント1件

34
NAME IS NULL[sage]   投稿日:2016/06/11 20:35:00  ID:???.net(482)
SQLServer の資格情報がホスト名付きでシステム系のテーブルに格納されてるから、それを変更しないと。
ってのならやった記憶がなくもないような。

詳細は全く覚えてない。すまん。

35
NAME IS NULL[sage]   投稿日:2016/06/11 22:24:07  ID:???.net(482)
windows認証のログイン、ユーザーがだめじゃ?
コメント1件

36
NAME IS NULL[]   投稿日:2016/06/12 02:48:28  ID:YEbpLz0V.net
>35
日本マイクロソフト人事本部シニアマネージャー(名ばかり管理職)の西川昌邦(さいかわまさくに)は犯罪者にして殺人犯だ!!
「あなたのような従業員は会社のパフォーマンスにとってマイナスなので早く死んでください」
などと自殺教唆を公然と行った!! その結果人が死んだ!!
丁寧に言えば何を言ってもいいというものではない!!これはヤクザや借金取りが脅迫をする時に
「いついつまでに金一億円をお振り込みください。命が惜しければ間違った判断をなされないことを期待します」
と発言するのと同じレベルだ!!
しかもそれを注意してやったら、「世間はわれわれの味方だ。文句があるなら訴えてきたらよろしい。メールを電番を公開したければ
どうぞご自由に。世論はわれわれを賛辞するするメールを送付するだろう」
などとイカ様気取りも大概にしろという発言を行った!!
抗議先 日本マイクロソフト人事本部 西川昌邦
メール:masaikaw●microsoft.com
(●を@に置き換えて)
電話:09025411718

37
NAME IS NULL[sage]   投稿日:2016/06/12 10:21:57  ID:???.net(482)
>33
ありがとうございます。
browserとはsql server browserの事を指しているのでしょうか?
sql server browserとなると正直触れたことも無いので…
sql server 2012上での作業は>32のみということでしょうか?

あと、sqlに対して行うサーバー名の変更作業は、実際サーバー名を変更する前に行った方が良いのでしょう?
コマンドプロンプトからsqlcmdでも出来そうには思うのですが、リスク軽減的にどちらが良いのかもう一つ分かりません。
何度も質問してすみません。

38
NAME IS NULL[sage]   投稿日:2016/06/12 22:13:07  ID:???.net(482)
リスク軽減なら、ぶっ壊れても最悪再インストールすればいい検証環境で手順確立するのが一番
システムDBのバックアップリストアや再作製のやり方も練習する
システムの構築手順を確認する、最悪の場合に備えて再構築するための時間を確保する

かなあ。
express落とすか、developerかmsdnあるならそれつかって自分のPCで試してみればいい。
システム構成もホスト名変更する背景もわからんから具体的なアドバイス難しい

39
NAME IS NULL[sage]   投稿日:2016/06/13 07:34:56  ID:???.net(482)
サーバー名の変更だけならそれで良いはず
規定のインスタンス使ってない場合はよくわからない
Windows人称でないなら問題も出なさそう

40
NAME IS NULL[]   投稿日:2016/06/14 11:06:11  ID:nfKm+RL8.net(2)
DBのバッチ系の処理がおそいおそいと文句言われる
HDをSSDに替えてアッと言わせてやろうと思うけど効果ありますか?
ちなみにSQLServer2008無印
現在の構成はRAID5でログのみミラーリング
コメント2件

41
NAME IS NULL[sage]   投稿日:2016/06/14 11:28:04  ID:???.net(482)
効果ありそうだけどSSDの損耗が早くてアッと言われそう
コメント2件

42
NAME IS NULL[sage]   投稿日:2016/06/14 11:42:31  ID:???.net(482)
>40
バッチ処理をどう実装しているかによる。
単発クエリを10万回ループとかだったら、SSDに変えてもほぼ無力。

43
NAME IS NULL[sage]   投稿日:2016/06/14 12:31:42  ID:???.net(482)
>40
効果的なチューニングにはウイークポイントの調査が必要です。
複数あるバッチのどれが長時間かかるのか、バッチのSQLのうち長時間かかるのはどれか(1回の時間x回数)

SQLがわかったら実行プランを取得してテーブルスキャンしてる項目を確認する。またOSのパフォーマンスモニタで書き込み、読み込みの状態を調べる。

サーバのハードウェアRAID書き込みキャッシュがON(ライトバック)になっているかも確認する(シスコのやつはバッテリー付きモデルなのに標準がOFFだった。)

44
NAME IS NULL[sage]   投稿日:2016/06/14 12:32:58  ID:???.net(482)
エンタープライズを使っている場合はテーブルの圧縮を行うのも有効です。
ほとんど欠点なく、スループットが上がります。

45
NAME IS NULL[sage]   投稿日:2016/06/14 18:01:50  ID:???.net(482)
>41
いつの時代だよ

46
NAME IS NULL[sage]   投稿日:2016/06/14 18:09:47  ID:???.net(482)

47
40[]   投稿日:2016/06/14 19:47:31  ID:nfKm+RL8.net(2)
みなさん、ありがとん!

バッチは毎日、毎時とそれぞれ数千〜数万件をBCPやインポート機能+カーソル処理でおこないますから
かきこみ相当あるかも(汗)

一応、定期のメンテプランは実行していて圧縮、再構成等マメにやっています。ハードウェアRAID書き込みキャッシュがONもかくにんしよ、


印メモリは予算的にむりだし2008がサポート切れまでこき使ってやるつもり。
コメント1件

48
NAME IS NULL[sage]   投稿日:2016/06/14 21:14:21  ID:???.net(482)
bcp等で巨大なデータを書き込む際にキー有りテーブルに書くのではなく、キーなしに書いて後からキーをつけた方が早くなります。
ただ、一時的にテーブルサイズが倍になる(alter tableすると内部でテーブルがコピーされるから)弊害がでます。

うちではbcpに6時間かかってたやつが3時間になったよ

49
NAME IS NULL[sage]   投稿日:2016/06/14 21:51:18  ID:???.net(482)
処理の仕方にもよるけど、cpuのクロック高いのにするとか
うちが扱ってる製品がそうで、10コアoverとかようつかわん
E7-4000番台に3Ghz超える4、6コアのcpu欲しい
インテルさんお願い

50
NAME IS NULL[sage]   投稿日:2016/06/15 03:10:15  ID:???.net(482)
ネックがどこにあるかわからんのにどうこう言ってもなぁ

51
NAME IS NULL[sage]   投稿日:2016/06/15 10:25:45  ID:???.net(482)
>47
> バッチは毎日、毎時とそれぞれ数千〜数万件をBCPやインポート機能+カーソル処理でおこないますから
> かきこみ相当あるかも(汗)
それは、コードがボトルネックだな
ハードウェアを増強しても、5分が4分とかになるくらいだろ
コードを書き直せば、5分が30秒とかになるだろうな

52
NAME IS NULL[sage]   投稿日:2016/06/15 11:19:21  ID:???.net(482)
1回のinsert or update or deleteが20msくらい×5万回=1,000秒=16分ちょい
とかになってるのかな

53
NAME IS NULL[sage]   投稿日:2016/06/24 18:37:55  ID:???.net(482)
sql server 2014 expressで
nvarchar(100)のカラムにハングル文字を書いて読み取ったら文字化けしました。
Server Management Studioで確認しても文字化けして
????と成ってます。
ネット情報では文字列の前にNプレフィックスを付ける必要があるとの事ですが、
そういう作業をせずに、DBの既定の言語をUTF-8に設定するみたいなのは出来ないのでしょうか?
既定の言語はSJISらしいですが、本当でしょうか?

54
NAME IS NULL[sage]   投稿日:2016/06/24 19:05:09  ID:???.net(482)
言語と文字コードは別物なんだが

55
NAME IS NULL[sage]   投稿日:2016/06/24 19:47:40  ID:???.net(482)
そもそもOSの言語が何で、サーバ/クライアントの言語が何かわからんが

nvarcharに対する文字列は基本的にはNプレフィックス付けるべき
付けないとおそらく照合順序に従って変換されてると思われる
(どのレベルでの照合順序が使われてるかは知らん)

データベースの既定の照合順序はALTER DATABASEで変えられるけど
データベース作り直す方が良いと思うぞ
コメント1件


56
NAME IS NULL[sage]   投稿日:2016/06/24 22:04:59  ID:???.net(482)
>55
とりあえず全部のカラムにNを付けたら解決しました。
nvarchar型以外のカラムにもNを付けたのですが問題ありますか?
試した限りでは問題なさそうなのですが。
Win7とWindows Server 2012R2です。

57
NAME IS NULL[sage]   投稿日:2016/06/28 20:13:35  ID:???.net(482)
Windows Updateを最新にした状態で2016をインストールしようとしたら「最小要件を満たしていない」と蹴られたのだが理由が分からない。
スペックが足らない訳でもないし、.Net Flamework 4.6.1はインストール済みなのに。。。

環境は以下のとおりです。Cドライブの空き容量は99GBです。

OS:Windows7 Professional x64
CPU:Intel Xeon E3-1241 v3 @ 3.50GHz
CPUクーラー:ETS-T40F-W
マザーボード:ASUS H97 PLUS
メモリ:ADATA AD3U1600W8G11-2 8GB×4
SSD(Cドライブ):Plextor PX-256M5S 256GB
SSD(キャッシュ):64GB
HDD:WD20EARS×2
VGA:NVIDIA GeForce GTX 660
コメント1件

58
NAME IS NULL[sage]   投稿日:2016/06/28 21:55:27  ID:???.net(482)
MSDN見てみたらWindows7が要件から抜けてるぞ
ms143506
コメント1件

59
NAME IS NULL[sage]   投稿日:2016/06/29 00:04:24  ID:???.net(482)
>58
Oh・・・マジか。見つけられなかったよ、そうかWindows7は対象外か。大人しく2014インストールするよ。

60
NAME IS NULL[sage]   投稿日:2016/06/29 01:00:35  ID:???.net(482)
>57
速そうなマシンだな

61
NAME IS NULL[sage]   投稿日:2016/07/14 19:37:36  ID:???.net(482)
SqlServer2014ExpressSP1の64bitを使っていて、
サービスの自動起動がされるときと、されないときがあるんですが、何かわかりますか?

手動で開始、停止を繰り返しても特に問題は起きず、
自動起動しなかったときに手動起動を行うことも問題なく出来ます。
サービスの自動遅延開始など試してみましたが、効果はありませんでした。
OSはWindows7ProfessionalのSP1です。

62
NAME IS NULL[sage]   投稿日:2016/07/14 19:54:43  ID:???.net(482)
エラーログやOSのイベントログぐらい確認できないのかよ
コメント2件

63
NAME IS NULL[sage]   投稿日:2016/07/14 20:08:25  ID:???.net(482)
>62
SqlServerのエラーログには何も吐き出されてなかったのですが、
OSのイベントログは見ていませんでした。そちらから調べてみます。

64
NAME IS NULL[sage]   投稿日:2016/07/14 20:44:06  ID:???.net(482)
SQL Server (MSSQLSERVER) サービスの接続を待機中にタイムアウト (30000 ミリ秒) になりました。
と出力されていたので、タイムアウトの時間を60000ミリ秒に設定してみました。
これで発生しなくなるかはまだわかりませんが、しばらく様子を見てみます。

>62
ありがとうございました。

65
NAME IS NULL[sage]   投稿日:2016/07/15 15:38:03  ID:???.net(482)
そもそも30秒で起動できないような環境が正しいか検証するべきじゃね

66
NAME IS NULL[sage]   投稿日:2016/07/19 20:15:06  ID:???.net(482)
2014 management studioで
TRUNCATE TABLE
でデータを削除してしまったのだが、UNDOは出来るの?
至急おしえてくれ。

67
NAME IS NULL[sage]   投稿日:2016/07/19 21:07:50  ID:???.net(482)
UNDOが何の事を指してるか分かりませんが、できません
バックアップから回復して下さい
コメント1件

68
NAME IS NULL[sage]   投稿日:2016/07/19 21:53:59  ID:???.net(482)
>67
バックアップはどこにある?
自動バックアップがあるの?

69
NAME IS NULL[sage]   投稿日:2016/07/19 22:54:30  ID:???.net(482)
自分でバックアップを取ってないなら諦めてください

70
NAME IS NULL[sage]   投稿日:2016/07/19 22:58:58  ID:???.net(482)
完全復旧モデルなら、今からバックアップ取って日時指定でリカバリできる気がする

71
NAME IS NULL[sage]   投稿日:2016/07/19 23:19:18  ID:???.net(482)
潔く諦めるか、そこだけ何故か震度7に襲われたことにするか、ついうっかり硫酸をこぼしてしまうか 天狗の仕業にするか  様々な手はある
もしくはこれから徹夜で手入力し続けて、明朝やつれきってゲッソリした顔で上司を迎えて同情を買うか
まぁ、買ってはくれないだろうけれども  楽になりたいなら、びっくりするほどユートピア!を社員の前でお披露目するしかないだろうことは想像に難くない

72
NAME IS NULL[sage]   投稿日:2016/07/20 05:46:49  ID:???.net(482)
>>完全復旧モデル
何よそれ。

73
NAME IS NULL[sage]   投稿日:2016/07/27 08:28:47  ID:???.net(482)
SQL Server 2012 SP3 をダウンロードしたいんだけどダウンロードセンターからダウンロードできない。

これだよねえ。
https://www.microsoft.com/ja-jp/download/details.aspx?id=49996
言語を選んでダウンロードボタンを押すと

ダウンロードしていただき、ありがとうございます。
Microsoft SQL Server 2012 Service Pack 3 (SP3)
インストール方法
以下略…

となってなにも起こらないです。
IEでもFireFoxでも同じです。
どうしたらいいす??

と、Chromeで試しながら書いていたらChromeではダウンロードファイルの選択ダイアログが出て、
ダウンロード開始することができた。ロサキネンシス!

74
NAME IS NULL[]   投稿日:2016/07/30 13:19:55  ID:yq4MDUYW.net(2)
sqlserverからaccessのデータへ接続したいのですが
以下のページを参考にすると

http://sqltips.blog40.fc2.com/blog-entry-11.html

「Microsoft Jet 4.0 OLE DB Provider」というものが必要みたいなんですが
私のsqlserverには表示されていません。
どこかで手に入れてインストールしておく必要があるんでしょうか?
どなたか教えてください
コメント1件

75
NAME IS NULL[sage]   投稿日:2016/07/30 13:27:13  ID:???.net(482)
SQL鯖がx64だったら無理と思う
コメント1件

76
NAME IS NULL[]   投稿日:2016/07/30 13:40:24  ID:yq4MDUYW.net(2)
>75
やっぱりそうなんですね
何とかaccessからデータ抽出する方法ってないでしょうか?
32bit版のsqlserverをインストールすればいけますか?

77
NAME IS NULL[sage]   投稿日:2016/07/30 14:23:20  ID:???.net(482)
Access側にSQL鯖へのリンク張って、そこで転送するとか

78
NAME IS NULL[sage]   投稿日:2016/07/30 15:31:32  ID:???.net(482)
>74
64ビット版のODBCドライバ経由すれば良いんでない?

79
NAME IS NULL[sage]   投稿日:2016/07/30 16:06:54  ID:???.net(482)
Jet OLEDBは古い
ACE.OLEDBってのがあって、これは64ビット版もある
たぶんそれでできるだろうけど、ACEってサーバ側での使用は想定も許諾もされてない気がする

accessからSQLServerにリンクテーブル張るのが楽な王道じゃないかな

80
NAME IS NULL[sage]   投稿日:2016/07/30 18:47:00  ID:???.net(482)
リンク貼る時何選べばよかとよ?
native clientとか分からん選択肢が一杯出て来るけん

81
NAME IS NULL[sage]   投稿日:2016/09/06 09:56:12  ID:???.net(482)
SSMS2016でATOKが使えないんだが・・・
Win7x86
コメント1件

82
NAME IS NULL[sage]   投稿日:2016/09/07 15:49:03  ID:???.net(482)
アプリの表示件数と実データの件数が合わないらしいから調べろと言われ
指示されたテーブルのフィールドを見たら泣きたくなった

だって、マスタキーがカンマ区切りで格納されてるんだもの orz

自分で関数作るか解析専用の外部スクリプト作るしかないのか?
コメント1件

83
NAME IS NULL[sage]   投稿日:2016/09/09 03:01:08  ID:???.net(482)
>82
ちょっと思ったんだが、CSV型みたいなCLRのユーザ定義型を自分で作ってみるとかどうだろう

84
NAME IS NULL[sage]   投稿日:2016/09/09 10:59:36  ID:???.net(482)
>81
ssmsでatokが使えないってどういう意味よ?

85
NAME IS NULL[sage]   投稿日:2016/10/07 16:24:10  ID:???.net(482)
SQLを発行してテーブルのデータを読み込む場合、
結果をDataTableに一気に読み込むのと、
SqlDataReaderを使って 
while (dr.Read()){
 ... 
}
のようにループで一個ずつ取り出すのとで、どっちが良いとかありますか?
コメント1件

86
NAME IS NULL[sage]   投稿日:2016/10/07 21:57:05  ID:???.net(482)
>85
まず読み込む件数によると思うが
コメント1件

87
NAME IS NULL[sage]   投稿日:2016/10/08 02:21:43  ID:???.net(482)
>86
数件〜数万件くらいです。状況によって変わります。
コメント1件

88
NAME IS NULL[sage]   投稿日:2016/10/08 05:22:55  ID:???.net(482)
>87
上限が数万なら一気読みでいいかと
将来的にもっと増えるかもならループかな
コメント1件

89
NAME IS NULL[sage]   投稿日:2016/10/08 06:31:28  ID:???.net(482)
>88
数が増えるとループのほうが良いのですか?
なぜですか?

90
NAME IS NULL[sage]   投稿日:2016/10/19 17:17:06  ID:???.net(482)
MySQLのREPLACE INTOに相当するコマンドはありますか?
コメント1件

91
NAME IS NULL[]   投稿日:2016/10/21 18:43:10  ID:9/r7lXFV.net
すみません、ご教示ください。
応研の給与大臣を使用していて、カスタマーサポートの指示に従いデータを復旧していたのですが、
以下の互換性コンポーネントをインストールするようダイアログが出ました。


Microsoft SQL Server 2005 の旧バージョンとの互換性コンポーネント
対象 : カスタマ、パートナー、開発者

X86 パッケージ (SQLServer2005_BC.msi) - 11258 KB
X64 パッケージ (SQLServer2005_BC_x64.msi) - 18552 KB
IA64 パッケージ (SQLServer2005_BC_ia64.msi) - 23490 KB

当方の環境がWindows10 64bitなのですが、どのパッケージをインストールすれば良いのでしょうか?
単純にX86 パッケージで良いものかわからなかったもので。
コメント1件

92
NAME IS NULL[sage]   投稿日:2016/10/21 19:31:32  ID:???.net(482)
>91
ベンダーなりメーカーなりに聞けよ

93
NAME IS NULL[sage]   投稿日:2016/10/22 10:43:18  ID:???.net(482)
>90
無い。mysqlの方が進んでいる

94
NAME IS NULL[sage]   投稿日:2016/10/23 02:01:53  ID:???.net(482)
mergeで全項目上書きでいいんじゃね

そもそもdeleteしてinserすれば良いだけで
ちゃんとしたトランザクションをサポートするDBMSでreplaceの必要性がわからんが
コメント1件

95
NAME IS NULL[sage]   投稿日:2016/10/24 02:54:50  ID:???.net(482)
生SQLだと0秒なのに、ストアド内に書くと35秒とか、
似たような悩みはググるといっぱい出てくるんだけど、どれ見ても解決してない様子

「推定実行プランの表示」ってダメ元で見てみたら、
ストアド版だけインデックス貼れって警告があって貼ったら直った

全く同じ内容なのに実行プランが違うわけないじゃん
もしかして有償サポート増やすために仕組んでる?

96
NAME IS NULL[sage]   投稿日:2016/10/24 03:10:48  ID:???.net(482)
mysqlやpostgreはいくら便利な命令があっても、スピードが遅いから単純なことにしか使えない
しかしまあ、t-sqlはお硬いやね
お硬いから速いのかもしれんが
GREATEST、LEASTぐらいは付けてもいいような

97
NAME IS NULL[sage]   投稿日:2016/10/24 03:29:06  ID:???.net(482)
SQLが同じでも実行計画が同じになるとは限らん
ストアドの実行計画は実行時に決定されるとは限らん

インデックス追加したということは、生SQLの方はインデックスを使ってないのに早かったのか
生SQLで使われてたインデックスがストアドでは使われてなかったのか

この程度の判断が自分でできないなら素直にどっかの業者に頼んだほうがいいんじゃね
コメント2件

98
NAME IS NULL[sage]   投稿日:2016/10/24 03:31:07  ID:???.net(482)
>97
全く同一の内容だと言ってるだろ頭悪いな
コメント1件

99
NAME IS NULL[sage]   投稿日:2016/10/24 03:33:38  ID:???.net(482)
>97
しかも自分で直ったと書いてあるだろ馬鹿

100
NAME IS NULL[sage]   投稿日:2016/10/24 03:35:16  ID:???.net(482)
ていうか俺自身が方々で数十倍〜数百倍にスピードアップさせてきた業者だからw

101
NAME IS NULL[sage]   投稿日:2016/10/24 03:47:25  ID:???.net(482)
>98
生SQLとストアドって言ってるんだけど、何が全く同一なのか?

推定実行計画は必ずしも実際の実行計画なわけじゃないぞ

ストアド内の個々のSQLの、実際の実行計画って簡単には確認できなかった気がするなぁ
だれか簡単なやり方しってる?
コメント1件

102
NAME IS NULL[sage]   投稿日:2016/10/24 03:53:11  ID:???.net(482)
何が問題だったかわからんけど、とりあえず不要かもしれんインデックス追加して直りましたってか
パフォーマンスチューニングやる業者のレベルとしては信じられんな

103
NAME IS NULL[sage]   投稿日:2016/10/24 05:57:49  ID:???.net(482)
>94
>replaceの必要性がわからんが
deleteしてinsertを一つのコマンドで実行したいからじゃねえ?

104
NAME IS NULL[sage]   投稿日:2016/10/24 07:59:00  ID:???.net(482)
文字列型のカラムで
2016/10/24 12:34:56
2016/1/2 2:3:5
のように桁がバラバラなのですが、それを
2016/10/24 12:34:56
2016/01/02 02:03:05
のように
YYYY/MM/DD HH:MM:SS
に揃えるSQL文を教えてください。
コメント1件

105
NAME IS NULL[sage]   投稿日:2016/10/24 09:01:09  ID:???.net(482)
>101
dm_exec_query_statsにある情報でいいんかな
dm_exec_query_plan、dm_exec_sql_text組み合わせてステートメント単位でとってこれるよ
カーソルオープンは厳しかったと思うけど

生SQLが早いってことは検索条件に変数使ってるとかかね
分布が特異な偏りしてるインデックスをストアドで使うなら、with recompileつけるのが推奨だったと思う
ヒント文つけてもいいけど
コメント1件

106
NAME IS NULL[sage]   投稿日:2016/10/24 20:28:53  ID:???.net(482)
>104
一旦日付型にCASTしてからフォーマット
つか特殊な要件が無ければ、DB上は日付型で保持してホストアプリ上で表示変換させた方が良いぞ

>105
>dm_exec_query_plan、dm_exec_sql_text組み合わせ
それ見ても、どのプロシジャなのか探すのが大変だからなぁ
コメント2件

107
NAME IS NULL[sage]   投稿日:2016/10/24 21:24:42  ID:???.net(482)
>106
>104
日付を文字列で保管するとどういうデメリットがありますか?
コメント2件

108
NAME IS NULL[sage]   投稿日:2016/10/24 21:34:11  ID:???.net(482)
>106
dbidとobjectidで引っ張ってくればいいじゃない
うちはバックアップとかみたく自動で定期的にとるよう運用に乗っけてるよ
リリースして遅くなったなんてときにかなり重宝する

109
NAME IS NULL[sage]   投稿日:2016/10/24 21:39:15  ID:???.net(482)
>107
orderbyとかwhere条件が大変
変換噛ましてやれないことはないが、そのぶんだけおそくなる
それにデータサイズも文字型のほうが大きくなる
コメント1件

110
NAME IS NULL[sage]   投稿日:2016/10/24 21:42:26  ID:???.net(482)
>109
なるほど。
でも日付型は1750年以降くらいしか保持できないそうですが、それで
問題は出ないのですか?
コメント2件

111
NAME IS NULL[sage]   投稿日:2016/10/24 21:49:30  ID:???.net(482)
>107
文字列で持ってたら、日付計算どうすんだよ

>110
日付型って言っても色々あるから
dateかdatetime2使え
コメント1件

112
NAME IS NULL[sage]   投稿日:2016/10/24 21:52:59  ID:???.net(482)
>111
>日付計算
このデータに関しては日付の計算をする予定はありません。
>dateかdatetime2使え
紀元前を扱うにはどうするのでしょうか?
コメント1件

113
NAME IS NULL[sage]   投稿日:2016/10/24 21:53:23  ID:???.net(482)
>110
要件定義次第
だがまずない

114
NAME IS NULL[sage]   投稿日:2016/10/24 21:54:49  ID:???.net(482)
>112
後はどういった要件があるのかな?
コメント1件

115
NAME IS NULL[sage]   投稿日:2016/10/24 22:00:16  ID:???.net(482)
>114
ありません。
コメント1件

116
NAME IS NULL[sage]   投稿日:2016/10/24 22:07:49  ID:???.net(482)
>115
どういった目的で紀元前を扱いたい?
扱うとは具体的にどういった処理をする?
コメント1件

117
NAME IS NULL[sage]   投稿日:2016/10/24 22:31:02  ID:???.net(482)
>116
紀元前を扱う目的はその年代の年月日をデータで保管したいから。
日付の計算はしない。
それだけ。
コメント1件

118
NAME IS NULL[sage]   投稿日:2016/10/24 22:34:19  ID:???.net(482)
>117
なら文字型が無難。

119
NAME IS NULL[sage]   投稿日:2016/10/26 00:41:26  ID:???.net(482)
てきとーにアンインストールしたら次から全然インストールできんくなった...助けて

120
NAME IS NULL[sage]   投稿日:2016/10/26 01:21:01  ID:???.net(482)
インストールログみて止まってるとこでググる
システムの復元でアンインストール前に戻す
OSから入れ直す
なにも情報ないからこれくらいしか言えない

121
NAME IS NULL[sage]   投稿日:2016/10/26 12:44:47  ID:???.net(482)
ットアップが失敗しました。
クリーンアップが必要ですってポップアップがでてきます..

122
NAME IS NULL[sage]   投稿日:2016/10/28 08:12:24  ID:???.net(482)
なんとか、再インストールできやした。あざした。

123
NAME IS NULL[sage]   投稿日:2016/10/31 14:07:37  ID:???.net(482)
sql serverとmysqlとで同じテーブルを同期させるなんて出来ますか?
sql serverの本データをmysqlにコピーする感じで。
コメント1件

124
NAME IS NULL[sage]   投稿日:2016/11/03 07:25:24  ID:???.net(482)
>123
MySQLへリンクサーバー定義して、同期時に更新とかで出来そうな気がする
同期どうするかは考えんとダメだけど
コメント1件

125
NAME IS NULL[sage]   投稿日:2016/11/03 10:12:13  ID:???.net(482)
>124
sql serverからmysqlへの一方通行のコピーなら簡単に出来るもんなの?

126
NAME IS NULL[sage]   投稿日:2016/11/04 05:38:06  ID:???.net(482)
リンクサーバ定義すれば、SQLServerからはローカルテーブルとほぼ同じように扱える
コメント1件

127
NAME IS NULL[sage]   投稿日:2016/11/04 16:29:37  ID:???.net(482)
>126
ありがとうございました。
リンクサーバーでググってみます

128
NAME IS NULL[sage]   投稿日:2016/11/07 22:55:01  ID:???.net(482)
デフォルトだとdbo スキーマが使われますが、
実際の開発現場では、スキーマを何種類も作成して使い分けるなど
するのでしょうか?
dbo一個だけでテーブルを使い分ければそれで済む場合も多いと思いますが。
コメント1件

129
NAME IS NULL[]   投稿日:2016/11/07 23:26:03  ID:eRnTZUaL.net
>128
dboはスキーマではなくユーザー。

Oracleのようだと勘違いしてる?
コメント1件

130
NAME IS NULL[sage]   投稿日:2016/11/08 00:40:36  ID:???.net(482)
例えばここにdboはスキーマだと書いてありますが。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14142218604

131
sage[]   投稿日:2016/11/08 19:07:02  ID:6hEpw8np.net

132
NAME IS NULL[sage]   投稿日:2016/11/08 23:19:02  ID:???.net(482)
今のSQLServerはDBユーザとスキーマが別なので、同じ名称のスキーマもユーザも存在するぞ

スキーマは使い分ける必要があればそうすればいいし
単一スキーマで問題なければ全部dboでもいいんじゃね
コメント1件

133
NAME IS NULL[sage]   投稿日:2016/11/09 00:28:18  ID:???.net(482)
>129-130
> dboはスキーマではなくユーザー。
違うよ
https://msdn.microsoft.com/ja-jp/library/bb669061(v=vs.110).aspx
コメント2件

134
NAME IS NULL[sage]   投稿日:2016/11/09 09:53:38  ID:???.net(482)
>132
>スキーマは使い分ける必要があればそうすればいいし
スキーマを分けるのは例えばどんな場合なん?
コメント1件

135
NAME IS NULL[sage]   投稿日:2016/11/09 19:50:50  ID:???.net(482)
>134
テーブル更新できないスキーマ作ったりのセキュリティ要件とか

スキーマっていうよりユーザって言う方がしっくりくるんだけどな
まあどうせDBごとでユーザとスキーマは1対1だろうし
実際スキーマとユーザの違いはすっきり説明できん
単にワンクッション入ってるだけってイメージだ

136
NAME IS NULL[]   投稿日:2016/11/09 22:45:58  ID:9dB+mYx1.net
>133
本来はユーザーで所有者なんだよ。

スキーマという概念は後付け。

SQL Serverではユーザーとスキーマは別のくくり。

137
NAME IS NULL[sage]   投稿日:2016/11/09 23:03:36  ID:???.net(482)
そんなオレオレ定義を開陳されても困る

138
NAME IS NULL[]   投稿日:2016/11/10 18:02:32  ID:0Mu12LBJ.net
私は元創価の会員でした。
すぐ隣に防衛省の背広組みの官舎があるのですが、
自分の家の窓にUSB接続のwebカムを貼り付けて、そこの動画を撮影し続け、
学会本部に送っていました。

別に大したものは写っていません。ゴミだしとか奥さんが子供を遊ばせている所とか。
官舎が老朽化して使われなくなってから、
今まで法人税(うちは自営業です)をほぼ払わなくても済んでいたのが、
もう守ってやれないのでこれからは満額申告するように言われました。
納得がいかないと言うと、君は自業自得で餓鬼地獄へ落ちる、
朝夕南無妙法蓮華経と三千回ずつ唱えて心をきれいにしなさいと言われ
馬鹿らしくなって脱会しました。

それ以来、どこへ行くにもぞろ目ナンバーの車につけまわされたり大変な日々です。
全部自分の出来心から起きたことで、どこに訴えるわけにもいかないのですが、
なんとかあの人たちと縁を切った上で新しい始まりを迎える方法はないんだろうか。

139
NAME IS NULL[sage]   投稿日:2016/11/10 22:12:44  ID:???.net(482)
まあ、SQLServerに限れば、昔はスキーマとDBユーザは同一だったから
>スキーマという概念は後付け。
と言えなくはないかもしれんが

>SQL Serverではユーザーとスキーマは別のくくり。
とどうつながるのか理解できん

140
NAME IS NULL[sage]   投稿日:2016/11/11 07:20:29  ID:???.net(482)
スキーマを正しく説明出来る人はここにはいないんですか?
コメント2件

141
NAME IS NULL[sage]   投稿日:2016/11/11 10:40:53  ID:???.net(482)
CitrixのXenAppのデータベースのぞいたら、サービスの単位でスキーマ分けてたな
ユーザはコンピュータアカウントだけででdb_owner
そんなやり方もあるんだなと感心した
うちは機能単位でなんてわけられないからdbo1個
リソースガバナー使う場合もあるからユーザは複数

142
NAME IS NULL[sage]   投稿日:2016/11/11 10:55:41  ID:???.net(482)
>140
スキーマというのは、大抵のRDBMSで共通する概念ですね。
一つのデータベース内で論理的なグルーピングをするためのものです。

PostgreSQLのヘルプがわかりやすいので引用します。

> データベースには、複数の名前付きスキーマが含まれ、スキーマにはテーブルが含まれます。
> スキーマには、データ型、関数および演算子などの他の名前付きオブジェクトも含まれます。
> 同じオブジェクト名を異なるスキーマで使用しても矛盾は起こりません。

> スキーマの使用が好まれる理由はいくつかあります。
>
> ・1つのデータベースを多数のユーザが互いに干渉することなく使用できるようにするため。
> ・管理しやすくなるよう、データベースオブジェクトを論理グループに編成するため。
> ・サードパーティのアプリケーションを別々のスキーマに入れることにより、他のオブジェクトの名前と競合しないようにするため。
> ・スキーマは、ネストできないという点を除き、オペレーティングシステムのディレクトリと似ています。

143
NAME IS NULL[sage]   投稿日:2016/11/11 19:49:22  ID:???.net(482)
>140
>133 に URL 書いてあるのになぜ読まん

144
NAME IS NULL[]   投稿日:2016/11/13 01:56:32  ID:ImZglz/9.net
SQL Serverは日本マイクロソフトのサポートがやる気ねえからな。

145
NAME IS NULL[sage]   投稿日:2016/11/13 17:11:33  ID:???.net(482)
日本MSはMSの名を借りた国内代理店だと思ってる

146
NAME IS NULL[sage]   投稿日:2016/11/14 10:03:43  ID:???.net(482)
Windows Server 2012R2 のWindows VPSでSQL Server Express 2016動かすには
メモリ2GBだと厳しいか?
IISも動かしている。

147
NAME IS NULL[sage]   投稿日:2016/11/14 19:09:41  ID:???.net(482)
Expressは使用メモリ1GBに制限されてなかったかな…
もちろん余裕があるに越したことはないけれども
コメント1件

148
NAME IS NULL[sage]   投稿日:2016/11/15 00:33:47  ID:???.net(482)
Committed bytesの適正値を考えると、メモリ2GBならIISとSQLserver合算で1GB未満、できれば600〜800MBくらいかなあ感覚だけど
IISとSQLserverで上限設定しときゃサーバーが不安定になるのは抑えられると思う
素直にメモリ増強するのが一番いいけどね
コメント1件

149
NAME IS NULL[sage]   投稿日:2016/11/15 23:39:28  ID:???.net(482)
>147>148
レスありがとうございました。
余裕をみて4GBくらいでVPS契約してみます。
コメント1件

150
NAME IS NULL[sage]   投稿日:2016/11/16 11:07:27  ID:???.net(482)
>149
個人利用でやる分には2GBでもいいと思うよ
会社のパソコン(Windows7の32bit、メモリ2GB)にSQLserver Developer EditionとIIS入れてて普通に動作する
Officeとかも使うとやっぱきつくなるんで普段はサービス停止してるけどね

151
NAME IS NULL[sage]   投稿日:2016/11/16 12:40:26  ID:???.net(482)
質問です。

先日、知り合いの店でデータベースリストアが勝手に走ったのですが
何が原因なのか不明な状態です。下記が一部ログになります。

The database '*****'' is marked RESTORING and is in a state that does not allow recovery to be run.

分かる方いらした教えてください。
コメント1件

152
NAME IS NULL[sage]   投稿日:2016/11/16 20:11:15  ID:???.net(482)
>151
ディスクが溢れたとかかも
まずはイベントログを見た方がいいと思う
https://blogs.msdn.microsoft.com/karthick_pk/2010/11/25/the-database-model-is-...

153
NAME IS NULL[sage]   投稿日:2016/11/17 23:05:51  ID:???.net(482)
ある特定のテーブルで大量の件数をDeleteする時だけ
異常に時間がかかるんですが何故だかわかりますか?
ググってもイマイチ分からんです

Delete From TABLE Where PK<****
みたいな単純なやり方なんですが…

エスパーの方教えてください
コメント2件

154
NAME IS NULL[sage]   投稿日:2016/11/18 00:05:01  ID:???.net(482)
>153
断片化が走りまくってるとか?
Insertするときもプライマリキー張ってると徐々に遅くなってくしそれかも
一回リビルドインデックスしてからやってみたら変わらんかなあ

sum関数でInt型の限界越えてオーバーフローしたんだが、実行プラン次第でオーバーフローしたりしなかったりするのは仕様?不具合?
2008r2から2014のsp2に移行しようとして本番データで動かしたらエラーなりやがった
MSに問い合わせる前にバグか仕様かのあたりつけときたい
コメント1件

155
NAME IS NULL[]   投稿日:2016/11/18 07:56:06  ID:mgIvH7zu.net(4)
>153
SELECTするときも時間がかかってる?

156
NAME IS NULL[sage]   投稿日:2016/11/18 08:03:38  ID:???.net(482)
あとでrollbackされたときに備えて、delete予定データをいったんtempに吐いてるから
データ数が多いと死ぬほど遅い

生かすデータだけ別テーブルに吐いてtruncate tableして別テーブルをリネームしたほうが早い場合もある
コメント3件

157
NAME IS NULL[sage]   投稿日:2016/11/18 08:05:35  ID:???.net(482)
リレーション絡んでると無理だけど

158
NAME IS NULL[]   投稿日:2016/11/18 08:14:49  ID:mgIvH7zu.net(4)
>156
そんな初心者みたいなアドバイスするなよw
コメント1件

159
NAME IS NULL[sage]   投稿日:2016/11/18 11:56:10  ID:???.net(482)
>158
待ってましたー、w

160
NAME IS NULL[sage]   投稿日:2016/11/18 12:53:12  ID:???.net(482)
>156
1000万件中10万件だけ残したいとか
そういう時はそっちの方がいいよね
truncateは本当に爽快

161
NAME IS NULL[]   投稿日:2016/11/18 13:09:12  ID:mgIvH7zu.net(4)
初心者スレかよw

162
NAME IS NULL[sage]   投稿日:2016/11/18 13:35:15  ID:???.net(482)
だけど、>156 以外に方法ないんだな、これが
あと、1回あたりのdelete数を減らしてやって(その分、何回も回して)
1トランザクションあたりのロックを多少なりとも緩和するか

163
NAME IS NULL[sage]   投稿日:2016/11/18 13:39:05  ID:???.net(482)
自分の場合、1億レコードが1000万件を退避させるとき
SET ROWCOUNT 指定して、小刻みに削除してる
(トランザクションログが一杯になるのを防止)

それでも平気で一晩とかかかるが
コメント2件

164
NAME IS NULL[]   投稿日:2016/11/18 13:41:35  ID:mgIvH7zu.net(4)
>163
おまえの環境なんか知らねえよw

165
NAME IS NULL[sage]   投稿日:2016/11/18 13:48:32  ID:???.net(482)
じゃ具体的な打開策を示してみろよ

166
NAME IS NULL[sage]   投稿日:2016/11/18 18:52:28  ID:???.net(482)
・復旧モデルを完全から単純にする
・テーブルロックを明示して削除する
・クラスターインデックスをやめる
・インデックスをドロップしてから削除

全部やって遅いなら、ハードを速いのに変えろ

167
NAME IS NULL[sage]   投稿日:2016/11/19 10:21:04  ID:???.net(482)
具体的には何も言えないチキン ⇒ ID:mgIvH7zu
コメント1件

168
NAME IS NULL[sage]   投稿日:2016/11/19 10:29:48  ID:???.net(482)
パーティションテーブルにできるならそれにしちゃえば?
あれならパーティション単位にトランケート 出来るらしいが

169
NAME IS NULL[sage]   投稿日:2016/11/19 11:41:15  ID:???.net(482)
色々あるもんだね

170
NAME IS NULL[]   投稿日:2016/11/19 12:44:15  ID:QTm9YLIS.net
>167
質問した本人がいないからな。

171
NAME IS NULL[sage]   投稿日:2016/11/19 15:34:55  ID:???.net(482)
truncate table に where 書けたら解決なのにな
それか、delete に「Rollback不能で構いませんから速くやってください」って with 句を準備してくれるか
コメント1件

172
NAME IS NULL[sage]   投稿日:2016/11/19 21:17:15  ID:???.net(482)
ロールバック不能で良いっていっても、その文でのアトミックは保障しないとだめだからなぁ

173
NAME IS NULL[sage]   投稿日:2016/11/19 22:46:43  ID:???.net(482)
>154
これの下の質問書いた者です
不具合ではなさそうなのがわかったのですがどうしたものかと質問です。

select 番号,sum(金額)
from テーブルA
inner join テーブルB on 〜
inner join テーブルC on 〜
inner join テーブルD on 〜
where 〜
group by 番号

これの実行プランがテーブルDとの内部結合前にgroup byとsumしててInt型の上限越えてしまいました
テーブルDとの内部結合を先にやってくれてたらそのデータが除外されて問題なかったのにっていう結果
whereとjoinとgroupby って優先順位特にないんでしたっけ
確実なエラー回避方法がBIGInt変換くらいしか思い付かない
コメント1件

174
NAME IS NULL[sage]   投稿日:2016/11/19 23:12:30  ID:???.net(482)
>171
deleteも結局はページ単位の処理になるからね、消すだけじゃなくページ間のインデックスも保持しなきゃとかいろいろやってるから
全部いらないから細かいこと抜きでってできるtruncateのようにはいかないよ

175
NAME IS NULL[sage]   投稿日:2016/11/20 01:43:45  ID:???.net(482)
>173
SQLは手続き型言語ではないので実行順序はオプティマイザが決めるってのが原則
ある程度はオプティマイザへの指示をクエリヒントって形で出せるけど

Dの結合を先にするようにサブクエリ書いてFORCE ORDER指定で行けるかもしれんが
そんなSQLは保守性わるいし、基本的にはどんな実行計画でもエラーにならんようにしろとしか

176
NAME IS NULL[sage]   投稿日:2016/11/23 10:58:15  ID:???.net(482)
>163
1億レコードって物凄い大きなDBですか?
どんなシステムなのか見当もつかない
コメント2件

177
NAME IS NULL[]   投稿日:2016/11/23 15:31:19  ID:RVwlvGQS.net
>176
誰もが知ってる会社のシステムならその程度は珍しくもないけど。

178
NAME IS NULL[sage]   投稿日:2016/11/23 20:11:21  ID:???.net(482)
>176
全然普通じゃん
どんな仕事してん?
コメント1件

179
NAME IS NULL[sage]   投稿日:2016/11/23 21:48:35  ID:???.net(482)
>178
むしろお前にどんな仕事してるのかを聞きたいわ

180
NAME IS NULL[]   投稿日:2016/11/24 00:03:09  ID:nZ9WujKe.net
健全でない言葉が含まれているため表示しません 内容を確認する

181
NAME IS NULL[sage]   投稿日:2016/11/28 14:13:26  ID:???.net(482)
更新しなくてSELECTだけのストアドがあります。
パラメータは3つです。

返ってくる行は30行程度で
クエリエディタから実行すると精々1〜2秒で戻ってきます。

クエリエディタでやってることと同様のものを
System.Data.SqlClient.SqlCommand で作って ExecuteReader してやるんですが
ExecuteReader が終わるまで15秒ほどかかります。
条件のよいとき(クエリエディタで1秒のもの)でも8〜9秒です。

いったい何が原因なのでしょうか。
コメント1件

182
NAME IS NULL[sage]   投稿日:2016/11/28 14:34:48  ID:???.net(482)
解決しました。

ALTER DATABASE データベース名 SET ARITHABORT ON
で算術アボートを有効にしてやったら、クエリエディタと同じになりました。

183
NAME IS NULL[sage]   投稿日:2016/11/28 14:56:49  ID:???.net(482)
ちょっと違ってました。

ALTER DATABASE データベース名 SET ARITHABORT ON
することで、クエリエディタと同じ速度になりましたが、
ADO.NET のときと同じ速度に、つまりは遅い方に揃ってしまいました。

ALTER DATABASE データベース名 SET ARITHABORT OFF
に戻したうえで、SqlCommand を投げるごとに
先に SET ARITHABORT OFF しておくと、早いクエリエディタと同じ速度になりました。

ゼロ割算の対策はしてあるつもりだし、むしろ NULL で進むよりエラーにしてもらったほうが嬉しいので
これはこれでいいのですが、全ての SqlCommand に埋め込まないといけないのか・・・

184
NAME IS NULL[sage]   投稿日:2016/11/28 15:26:31  ID:???.net(482)
>181-182
テーブル変数とか使ってる?
実テーブルからだけのselectでも発生してる?

185
NAME IS NULL[sage]   投稿日:2016/11/28 15:54:51  ID:???.net(482)
テーブル変数を使ってたんですが、作業表(#〜)にしても一緒でした。
中身一緒かもしれませんが。
コメント1件

186
NAME IS NULL[sage]   投稿日:2016/11/28 16:07:15  ID:???.net(482)
>185
テーブル変数つかうと、行数を正しく判定できないで遅いプラン作る事があるってのは聞いたことある
selectしてるとこにRECOMPILEヒント入れるとマシになるかも
当然リコンパイル分のパフォーマンス劣化はあるけど、遅いプランとどっちがマシか比べて

187
NAME IS NULL[sage]   投稿日:2016/11/28 16:19:19  ID:???.net(482)
ストアドの中のselect〜の末尾に option(RECOMPILE) 追加するんですよね?
試してみましたが、全く効果なく、事前の SET ARITHABORT ON を外すと元通り劇遅になりました。

ConnectionStringで SET ARITHABORT ON を指定できたらいいのですが。。。

188
NAME IS NULL[sage]   投稿日:2016/11/28 16:38:59  ID:???.net(482)
ARITHABORT OFFで遅い実行計画つくることがあるとはMSDNにも書かれてるけど
実際にそれが原因で問題のある実行計画作られたのは見た事ないなぁ
executeにWITH RECOMPILEつけても同じ?
これでダメなら、自分で適切なヒント付けてやればいいんだけど
そもそも実行計画の問題じゃない気もしなくはないな

189
NAME IS NULL[sage]   投稿日:2016/11/28 17:00:05  ID:???.net(482)
テーブルに単価のフィールドを持ってなくて、そのかわりに金額÷数量を単価とみなすビューを作ってあるんです
金額/nullif(数量,0) as 単価

それ利用してるもんだから、ゼロ割算の関係だとしたらビンゴなんですよ。

190
NAME IS NULL[sage]   投稿日:2016/11/28 17:12:45  ID:???.net(482)
以降は、君のブログで。

191
NAME IS NULL[sage]   投稿日:2016/11/28 17:20:38  ID:???.net(482)
SET NOCOUNT ON してる?
ほんとにSET ARITHABORT の問題なら、ストアドの中でSET ARITHABORT ON すれば良い
コメント1件

192
NAME IS NULL[sage]   投稿日:2016/11/28 17:30:39  ID:???.net(482)
>191
SET NOCOUNT ON は基本やってます。
ストアドの中で SET ARITHABORT ON 明示してもいいんですか。

とりあえず今回気が付いたもの以外にも、気が付かないだけで潜在的に遅いものがありそうな気がしてまして
かつ、ストアドでなくソースの中でSQL吐いてるのもあって、
CreateCommand する直後で全て SET ARITHABORT ON したほうが良さそうな感じ。

http://www.sommarskog.se/query-plan-mysteries.html
が詳しいようです。
コメント1件

193
NAME IS NULL[sage]   投稿日:2016/11/28 17:32:01  ID:???.net(482)
いま注目してるストアドを相手にしたときは

SET ARITHABORT OFF で16秒
SET ARITHABORT ON  で2秒

くらいの違いがありました。
続けて何度か回しても結果は大差ないので、キャッシュの関係もなさそうだし・・・

194
NAME IS NULL[sage]   投稿日:2016/11/28 18:04:45  ID:???.net(482)
>192
そこも、基本的にはオプションが違うと実行計画が違うよって話

実行計画うんぬん以前に、オプションで結果変わってるし
そのコードじゃゼロ割りの対策してないしw

キャッシュってのは、クエリプランのキャッシュのこと
データキャッシュとは別だから、何回回しても大差ないよ
コメント2件

195
NAME IS NULL[sage]   投稿日:2016/11/28 18:12:55  ID:???.net(482)
>194
> そのコードじゃゼロ割りの対策してないしw
ど素人は黙っとけ

196
NAME IS NULL[sage]   投稿日:2016/12/02 13:29:12  ID:???.net(482)
col1  nvarchar(100)   Primary Key
col2  int  Primary Key, IDENTITY
con3  nvarchar(100)
の場合に
col1,col3の値を指定してinsertのつもりが、間違えてUpdateを実行したら
col1の値に等しい全ての行のcol1, col3が全部同じ値になってしまったのですが
そういうもんですか?
コメント2件

197
NAME IS NULL[sage]   投稿日:2016/12/02 15:28:09  ID:???.net(482)
どうやったらInsとupd間違うんだろう
where句なしで実行ってこと?
ORマッパーみたいなツールの話だろうか

198
NAME IS NULL[sage]   投稿日:2016/12/02 15:30:42  ID:???.net(482)
言ってる意味がわからないけど
col2がidentityならそれでユニークは保障されるから
col1とcol3が全部同じでもなんの不思議もない

どう間違えたらinsert文がupdate文になるのか知らんが
そういうSQL流したんだろ

199
NAME IS NULL[sage]   投稿日:2016/12/02 17:00:30  ID:???.net(482)
col1   col2    col3
Aさん    1    データ1
Aさん    2    データ2
Aさん    3    データ3
Bさん    4    データ4
Cさん    5    データ5
Cさん    6    データ6

col1   col2    col3
Aさん    1    データ1
Aさん    2    データ1
Aさん    3    データ1
Aさん    4    データ1
Aさん    5    データ1
Aさん    6    データ1
こんなふうになりました。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)

200
NAME IS NULL[sage]   投稿日:2016/12/02 17:54:06  ID:???.net(482)
update 表名
set col1 = 'Aさん',col3 = 'データ1'

以外でこうなるSQLを考えるクイズの時間です

201
NAME IS NULL[sage]   投稿日:2016/12/02 18:25:05  ID:???.net(482)
>196
つか、そもそもそのテーブルのPKがおかしい。
コメント1件

202
NAME IS NULL[sage]   投稿日:2016/12/03 09:08:53  ID:???.net(482)
>201
複合主キーじゃあないの?
どのあたりがおかしい?
コメント1件

203
NAME IS NULL[sage]   投稿日:2016/12/03 18:56:22  ID:???.net(482)
>202
普通 Identity だけにしないか?
複合にする意図がわからん

204
NAME IS NULL[sage]   投稿日:2016/12/03 19:34:14  ID:???.net(482)
clo2は単にユニーク保障のためだけで、実質はcol1+連番がキーなんだろ
そういう意図を表すためには複合主キーで良いんじゃね

あくまでcol2単独の検索はしない前提たが
インデックスがcol1からの(クラスタ化)インデックスひとつで済むってメリットもあるかもしれんw
コメント1件

205
NAME IS NULL[sage]   投稿日:2016/12/03 20:22:19  ID:???.net(482)
>204
> そういう意図を表すため
いやその「そう言う意図」がイミフなんだが

206
NAME IS NULL[sage]   投稿日:2016/12/04 10:31:37  ID:???.net(482)
>196
のような手法は一般には使わないの?

207
NAME IS NULL[]   投稿日:2016/12/04 10:45:59  ID:5zb5esCr.net
insertのつもりでupdateしてしまう手法のことか?
コメント1件

208
NAME IS NULL[sage]   投稿日:2016/12/04 11:20:07  ID:???.net(482)
>196 のような手法
って言うのが Identity + 他の何か を複合キーにすると言う話なら俺は見たことはない
むしろ >207 の言ってる方がまだあり得る

209
NAME IS NULL[sage]   投稿日:2016/12/14 16:16:48  ID:???.net(482)
TBS

210
NAME IS NULL[sage]   投稿日:2016/12/15 15:38:31  ID:???.net(482)
調べものしててmsdnのサイト見てたら2016の次にVNextとかいうのがでてた
早いなあと思ってたら2016のSP1が既に出てて驚愕
Microsoftなんか焦ってる?

211
NAME IS NULL[sage]   投稿日:2016/12/17 16:44:00  ID:???.net(482)
linux版はvNext相当だっけ

212
NAME IS NULL[sage]   投稿日:2016/12/21 10:18:02  ID:???.net(482)
VPSでSQL SERVER EXPRESS 2016を使う場合には最低限どんなスペックが必要かな?
運用中の人がいたらCPU数、メモリGBなどアドバイスが欲しい。

213
NAME IS NULL[sage]   投稿日:2016/12/21 18:43:55  ID:???.net(482)
規模も用途も書かんのなら、公式の動作環境以上の回答があるとは思えんが

214
NAME IS NULL[sage]   投稿日:2017/01/18 23:26:29  ID:???.net(482)
カーソルのFAST_FORWARDって内部で何してるの?
INSENSITIVEやFORWARD_ONLYだとmaxdop数分のスレッドでカーソルオープンしてるのに、FAST_FORWARDだと1dopになる
クエリは単一テーブルのselect文で、group by、order by句がある
msdnのカーソルのとこ読んだけどわかんなかったよ
ちな2014のsp2です

215
NAME IS NULL[sage]   投稿日:2017/02/01 11:41:06  ID:???.net(482)
入門書としておすすめの書籍ある?

216
NAME IS NULL[]   投稿日:2017/02/03 18:34:25  ID:0GL48OMF.net
2014でレプリケーションができないです
配布元のデータができないです
リカバリする方法ないでしょか?

217
NAME IS NULL[]   投稿日:2017/02/04 11:55:40  ID:nkqeAkqN.net

218
NAME IS NULL[sage]   投稿日:2017/02/04 19:51:14  ID:???.net(482)
sql サーバーってマルチコアcpuで実行すると並列で処理されてレスポンス速くなったりするの?
コメント2件

219
NAME IS NULL[sage]   投稿日:2017/02/04 20:08:45  ID:???.net(482)
>218
ならないよ。

220
NAME IS NULL[sage]   投稿日:2017/02/04 20:09:35  ID:???.net(482)
>218
なるよ

221
NAME IS NULL[sage]   投稿日:2017/02/04 23:23:46  ID:???.net(482)
レスポンス変わるだろうけど、ディスクアクセスの要素のほうが強くて条件次第では大幅に、とはいかなそうね

222
NAME IS NULL[sage]   投稿日:2017/02/05 02:38:35  ID:???.net(482)
2016 express版を使っています。
20万件くらいのテーブルから全件をorder byして取り出すだけで
20秒くらいかかるんです、そんなもんですか?
コメント1件

223
NAME IS NULL[sage]   投稿日:2017/02/05 07:46:27  ID:???.net(482)
>222
なんにもしなきゃそんなもんでしょ
コメント1件

224
NAME IS NULL[sage]   投稿日:2017/02/05 08:10:32  ID:???.net(482)
>223
速くする方法を教えて下さい。
データは1時間に一回くらい更新されるので、例えばその時にorder byした
データを作成しておけば良いかなあと思うのですが、そういう方式で速くなりますか?
コメント2件

225
NAME IS NULL[sage]   投稿日:2017/02/05 08:32:05  ID:???.net(482)
>224
インデックスは張ってるのか?
コメント1件

226
NAME IS NULL[sage]   投稿日:2017/02/05 08:38:28  ID:???.net(482)
>224
しなけりゃ何秒かかるのよ?
コメント1件

227
NAME IS NULL[sage]   投稿日:2017/02/05 09:07:02  ID:???.net(482)
>225
なんですかそれは?
>226
ああ、勘違いでした。
order byしてもしなくてもクエリ自体は一瞬で終わっていました。
時間が掛かるのは
C#でDataTableにloadで読み出しているところでした。
1行が1KBくらいのデータ
200,000行なので、200MBくらいのデータを読み出している計算になりますか。
その場合、20秒くらい掛かるもんですか?1秒以内くらいにできますか?
コメント2件

228
NAME IS NULL[sage]   投稿日:2017/02/05 10:06:55  ID:???.net(482)
>227
.NETスレ行け

229
NAME IS NULL[sage]   投稿日:2017/02/05 18:56:51  ID:???.net(482)
行かない

230
NAME IS NULL[sage]   投稿日:2017/02/06 23:59:23  ID:???.net(482)
>227
このスレでの質問じゃないね

231
NAME IS NULL[sage]   投稿日:2017/02/07 11:16:26  ID:???.net(482)
sql serverとsql server express は速さは違うのでしょうか?
コメント2件

232
NAME IS NULL[sage]   投稿日:2017/02/07 12:31:51  ID:???.net(482)

233
NAME IS NULL[sage]   投稿日:2017/02/07 12:39:38  ID:???.net(482)
>232
何倍くらい?
コメント1件

234
NAME IS NULL[sage]   投稿日:2017/02/07 12:43:35  ID:???.net(482)
>233
0.8〜1.19倍くらい
コメント1件

235
NAME IS NULL[sage]   投稿日:2017/02/07 12:57:17  ID:???.net(482)
>231
条件による
使えるメモリーとかコア数違うから

236
NAME IS NULL[sage]   投稿日:2017/02/07 13:58:59  ID:???.net(482)
>234
誰が測定したのですか?

237
NAME IS NULL[sage]   投稿日:2017/02/07 18:00:30  ID:???.net(482)
なんだこのアホなやりとりは

238
NAME IS NULL[sage]   投稿日:2017/02/07 19:31:44  ID:???.net(482)
レス古事記だろ
スルーでいいよ

239
NAME IS NULL[sage]   投稿日:2017/02/21 14:26:23  ID:???.net(482)
updateするときに、違いがなかったらupdateされないようにしたいです。
(トリガーで履歴を取っているのと、timestamp列が無駄に変わるのを防ぎたいため)

そこで、updateのwhereに
binary_checksum(項目1,項目2,項目3,・・・)<>binary_checksum(@項目1,@項目2,@項目3,・・・)
ってのを追加してます。

概ねいいんですが、かなり単純な条件でコンフリクトが発生しました。
bit型の項目1と項目9があって、項目1:1→0,項目9:0→1 のとき、binary_checksumが一緒になるという・・・

HashBytes だと () の中に複数の項目が書けません。
binary_checksumみたいな () に複数項目が書けるもので、もうちょっとコンフリクト起きにくいなにかないですか。
コメント1件

240
NAME IS NULL[sage]   投稿日:2017/02/21 14:48:31  ID:???.net(482)
>239
コンフリクトの使い方間違ってるんじゃないか?

それはともかく、単純にwhere old_item1 <> new_item1 or old_item2 <> new_item2 or ...
ってやるのは駄目なのか?

241
NAME IS NULL[sage]   投稿日:2017/02/22 08:27:45  ID:???.net(482)
binary_checksumがどうやって計算してるかしらんが、たとえば単純なsumだったら
(1,0)と(0,1)が同じ値になるのは当然だわな
素直に全項目比較する方がいいんじゃね

どういう状況かわからんが、本来はホストアプリ側で更新する(UPDATE発行する)かどうか判断するべきだと思うけどな

242
239[sage]   投稿日:2017/02/22 10:07:47  ID:???.net(482)
ありがとうございます。
仕方ないので
where ・・・ and (binary_checksum(項目1)<>binary_checksum(@項目1) or binary_checksum(項目2)<>binary_checksum(@項目2) ・・・)
という風にやりました。
HashBytesにしなかった理由は、項目1つならコンフリクトの可能性が低いと判断したためです。
(演算の軽いほうで)

243
NAME IS NULL[sage]   投稿日:2017/02/22 21:31:00  ID:???.net(482)
SQLServerを使用したいと思っているのですが、全くの無知なので教えて頂きたいです。

現在、accessを使用しています。
接続人数は3人(3台)で、バックエンドデータを1つ作成しフロントエンドを3台に配布してリンクテーブルを使って使用しています。
最近、同時接続時にクエリ実行が遅くなってきて困っています。

このバックエンドデータをSQLServerに移し、ODBC接続でリンクすればクエリ速度等は解決するのでしょうか?
また、SQLServerに移行したとしてもフロントエンドのacceesでは同じようにクエリやVBAでテーブルの印刷処理やクエリでの更新等も特に設定などを変えずにそのまま使用出来るのでしょうか?

初歩的なことだと思うのですがよろしくお願いします。
コメント2件

244
NAME IS NULL[sage]   投稿日:2017/02/22 21:55:11  ID:???.net(482)
>243
とりあえずやってみると良いよ
費用かからないし
しかし今時こんなが環境あるんかな
20年くらい昔によくあったやつ
コメント1件

245
NAME IS NULL[sage]   投稿日:2017/02/22 23:17:15  ID:???.net(482)
>243
アップサイズは全部が全部改善するとは限りませんが基本的には改善します
下の方が書かれている様に、まずやってみると良いですよ
これくらいか〜と体感できますので

ODBCリンクであれば基本的にフロントのAccessはそのまま使用できます
SQL Serverは文字コード、ソート順、キー、インデックス
くらいは確認しておいた方が良いですよ
コメント1件

246
NAME IS NULL[sage]   投稿日:2017/02/23 12:33:19  ID:???.net(482)
>244
>245
有り難うございます。
バックエンドをSQLServerに移行すると、フロントエンドでのVBAやクエリでの処理が今まで通り使えるのかが分からずに悩んでいました。

基本的には、バックエンドがacceesファイルからSQLServerに替わっても、特に編集し直すこともなくフロントエンドを使用することが出来るで大丈夫ですか?
コメント1件

247
NAME IS NULL[sage]   投稿日:2017/02/23 14:40:40  ID:???.net(482)
>246
.mdb or .accdbでODBC接続なら編集不要だと思うけど
SQL SERVERの照合順序は気を付けて
照合順序はアプリ側の実装に依存するから自力で調べて
コメント1件

248
NAME IS NULL[sage]   投稿日:2017/02/23 18:48:24  ID:???.net(482)
>247
助言有り難うございます。
accdbなのでそのまま使えそうです。

とりあえず、SQLServerをインストール、accessデータをインポートしODBC接続までしました。
何故かテーブルデータをフロントエンドのaccessで編集出来なかったのですが、主キーが設定されてないのか、ファイアーウォールがまだ未設定だからなのか調べ中です。

疑問なのですが、
10万件のデータがあり、1件のデータを更新したい為に、単純な更新クエリを作成したとします。
単純な更新クエリなので抽出や選択もなく、10万件の全てのデータが更新されます。つまり9万9999件は無駄な更新です。
これをaccessデータのリンクテーブルではかなり時間がかかりますが、SQLServerでのリンクテーブルでは数秒で処理が終わるほど変化があるのでしょうか?
それとも、このような無駄なクエリではあまり速度は変わらず、クエリ自体を考え直すべきなのでしょうか?
コメント2件

249
NAME IS NULL[sage]   投稿日:2017/02/23 20:18:10  ID:???.net(482)
>248
テーブル編集はSQL Server Management Studioを使うか、DDL直接投げるか
単純なUPDATEなら10万レコードだろうが一瞬で終わるよ(※データ量次第)
コメント1件

250
NAME IS NULL[]   投稿日:2017/02/23 20:51:17  ID:/7OWtulZ.net
思わせぶりな※

251
NAME IS NULL[sage]   投稿日:2017/02/23 21:19:27  ID:???.net(482)
>248
昔のAccessしか知らないけど
主キー無い場合はテーブルリンク作成時にキー項目選択するとかだったはず
当然可能なら主キーは設定すべきだけど

「9万9999件は無駄な更新」ってのが意味不明
何万件あろうが更新対象が1件の場合は1件しか更新しないよ
その場合の更新は文字通り一瞬で終わる
コメント1件

252
NAME IS NULL[sage]   投稿日:2017/02/23 22:30:45  ID:???.net(482)
>249
フロントエンドのフォームでテーブルのデータは編集出来ないのでしょうか?
>251
私の勘違いでしょうか。
いつも日報等で更新したいデータはカレントレコードの1件なのですが、更新クエリを使うと〜万件(全件)のデータを更新します、と表示されて、数分かかります。
クエリはフィールドAが空白ならフィールドBに"合格"の文字、フィールドAが空白以外なら"不合格"の文字を入れる、というクエリです。
これでは全レコードがクエリの対象になっていると解釈すべきですか。
コメント4件

253
NAME IS NULL[sage]   投稿日:2017/02/24 02:51:11  ID:???.net(482)
>252
テーブル開いてデータ変更できるよ
更新権限のないユーザーで接続してると思う

254
NAME IS NULL[sage]   投稿日:2017/02/24 06:17:19  ID:???.net(482)
>252
このロジックだったら全件更新だよ

以下なら2件の更新になるよ
それでも時間かかる場合はAとBのインデックスを作成すれば一瞬で終わる
Aが空白でBが合格以外の場合は、Bに合格を入れる
Aが空白以外でBが合格の場合は、Bに不合格を入れる
コメント3件

255
NAME IS NULL[sage]   投稿日:2017/02/24 07:23:35  ID:???.net(482)
>252
> いつも日報等で更新したいデータはカレントレコードの1件
そのレコードを抽出する選択クエリを作成すればいいだけじゃね?

256
NAME IS NULL[sage]   投稿日:2017/02/24 11:13:40  ID:???.net(482)
>252
>全レコードがクエリの対象になっていると解釈すべきですか
どんなクエリ(SQL)流したかとどんなテーブル(インデックス)だったか分からんと分からん
が、全件読み込んでる可能性が高いなぁ

>254
クエリの検索条件にACCESSの関数入れたりしたら全件取得するかもしれんぞ

メインはサーバ側の話じゃなくてACCESSの動作の話だし
ACCESSのスレ探すが作るかして移動したほうが良いんじゃね

257
NAME IS NULL[sage]   投稿日:2017/02/24 12:27:49  ID:???.net(482)
皆様有り難うございます。一度クエリを見直してみます。

色々と調べたのですが、単純なフロントエンドをaccess、バックエンドをSQL ServerでODBC接続では、
クエリ等の処理はサーバー側でななくクライアント側で処理されるのであまり速度の恩恵はないと見たのですが、やはりそうなのでしょうか?
これをサーバー側で処理する場合、かなりVBA等の手直しが必要なそうですが、そこまでいくと素人レベルでは難しそうです。
コメント1件

258
NAME IS NULL[sage]   投稿日:2017/02/25 03:47:54  ID:???.net(482)
やってみてそう感じたなら恩恵はないんだろうね

259
NAME IS NULL[sage]   投稿日:2017/02/25 11:50:18  ID:???.net(482)
>257
SQL文の実行はAccessではなくSQL Serverだよ

>254で改善できると思われ
コメント1件


260
NAME IS NULL[sage]   投稿日:2017/02/25 17:40:28  ID:???.net(482)
>259
有り難うございます。
SQL文はSQL Serverで処理されるのですね。

今の解釈としては
accessのみのリンクされたデータベースでは、処理は全てクライアント側の仕事になりネットワークトラフィックが膨大になる。
SQL ServerとのODBCのリンクテーブルでは、SQL文をSQL Serverに渡し、SQL Serverが処理を行い、その解をクライアントに渡すのでネットワークトラフィックが少なくてすむ。
という理解で大丈夫でしょうか?

今までクエリ処理が重かったので、VBAを使ってきたのですが、出来るものはクエリに変えた方がいいのでしょうか?
コメント1件

261
NAME IS NULL[sage]   投稿日:2017/02/25 19:54:24  ID:???.net(482)
アクセスでodbcリンクテーブルを使うとデータが多いと遅いから
更新ない一覧表示とかの時はパススルークエリ使ったほうがいいと思うわ

262
NAME IS NULL[sage]   投稿日:2017/02/25 23:10:34  ID:???.net(482)
>260
>SQL文をSQL Serverに渡し、SQL Serverが処理を行い
は正しいんだが、実行する内容によって、まずACCESSがどんなSQLを発行するか
その結果を受け取った後にどんな処理をするかによるので
>ネットワークトラフィックが少なくてすむ
とは限らん
>254で言ってるように、検索条件にACCESSの関数入るような処理だと結局ACCESS側で全件取得して検査するかもしれん
なんにしてもACCESSの話だからこれ以上はどっか移動しろ

263
NAME IS NULL[sage]   投稿日:2017/02/26 23:01:28  ID:???.net(482)
「上位200行を編集」で表示されたデータを全選択してコピーすると
選択したデータにはあった括弧などの文字が欠落してコピーされる」みたいになバグがSqlServerにあると聞いたのですが
本当なのでしょうか?(例えば"(ABC)"を選択してコピーし、メモ帳などに貼り付けると"(ABC"になってたなど)

264
NAME IS NULL[sage]   投稿日:2017/02/26 23:28:44  ID:???.net(482)
なんでどこで聞いたか言わないのかねえ

265
NAME IS NULL[sage]   投稿日:2017/02/27 08:15:54  ID:???.net(482)
自分で試せる環境はないのかね。

266
NAME IS NULL[sage]   投稿日:2017/03/03 00:00:11  ID:???.net(482)
VB6からSqlServerに接続する時はoo4oとかいうのを使うんだっけ?

267
NAME IS NULL[sage]   投稿日:2017/03/03 04:44:09  ID:???.net(482)
それオラクル
コメント1件

268
266[sage]   投稿日:2017/03/03 06:07:27  ID:???.net(482)
>267
そうだった、オラクルだったw

10年以上前(受託開発やってた会社の正社員時代)に使ってたからすごくなつい気分になったよ、ありがとう。
そんな俺も今じゃ客先常駐のしがない派遣社員・・・orz

269
NAME IS NULL[sage]   投稿日:2017/03/04 17:12:25  ID:???.net(482)
sql server使う人は言語はphp?
コメント1件

270
NAME IS NULL[sage]   投稿日:2017/03/04 17:31:18  ID:???.net(482)
>269
なぜそう思った

271
NAME IS NULL[sage]   投稿日:2017/03/05 06:30:37  ID:???.net(482)
sql server使う人は言語はC#?

272
NAME IS NULL[sage]   投稿日:2017/03/05 11:37:02  ID:???.net(482)
SQLServerはStandardとEnterpriseのEdition機能差が酷すぎるわ
碌に新機能使えないならStandardなんて名乗らずにLiteとかにしろよと

273
NAME IS NULL[sage]   投稿日:2017/03/05 11:41:36  ID:???.net(482)
おれは C#,C++, PowerShell 辺りが多い

274
NAME IS NULL[sage]   投稿日:2017/03/05 11:53:02  ID:???.net(482)
Javaとか

275
NAME IS NULL[sage]   投稿日:2017/03/05 17:53:33  ID:???.net(482)
Javaと聞くといつも風呂釜洗浄剤を思い浮かべてしまう

276
NAME IS NULL[sage]   投稿日:2017/03/05 18:03:30  ID:???.net(482)
俺はexcelvba
コメント1件

277
NAME IS NULL[sage]   投稿日:2017/03/05 20:06:10  ID:???.net(482)
>276
vbaで出来るの?
コメント2件

278
NAME IS NULL[sage]   投稿日:2017/03/05 20:28:50  ID:???.net(482)
>277
vba sql-server でググれ

279
NAME IS NULL[sage]   投稿日:2017/03/05 20:35:26  ID:???.net(482)
>277
ado(activex data object)でやってる
マスターの更新とかデータのセットや取得はエクセルでやったほうが楽チン

280
NAME IS NULL[sage]   投稿日:2017/03/06 00:11:22  ID:???.net(482)
OLEDB廃止だったはずだけど、いまだにADOで接続できるドライバあるのか
まあ、OLEDB-ODBCで行けるっちゃいけるんだろうけど

281
NAME IS NULL[sage]   投稿日:2017/03/08 14:25:17  ID:???.net(482)
現在2012にて動いている環境を2014に移行させようと思っています。

データは毎夜間にbcpコマンドを使って取り入れており、そのコマンド・フォーマットファイル自体は既存のものを流用予定です。
で、実際に動かしてみると2014のみ

SQLState = 22005, NativeError = 0
Error = [Microsoft][ODBC Driver 11 for SQL Server]キャストした文字コードが無効です。

が2レコード出ました。原因のレコードは突き止めたのですが、問題は分からず。
いろいろ試すと以下の事が分かりました。

・datetime2を使用しているカラムが怪しい?
・2レコードのうち片方のレコードを削除すると全レコード取り込みOK
・問題の1レコードの位置を最下部に移動して保存し直しすると全レコード取り込みOK
・問題の1レコードのdatetime2の最下部を1桁切ると全レコード取り込みOK

この件に関しては対応方法はあるのですが、そもそもの原因が分からないのは気持ち悪いです。
何か思いつく事はありますでしょうか?
コメント1件

282
resumi[]   投稿日:2017/03/08 17:40:19  ID:hjh5f++s.net(2)
https://goo.gl/l3fSYl
これ本当??
普通にショックだね。。

283
resumi[]   投稿日:2017/03/08 18:04:56  ID:hjh5f++s.net(2)
2重書き込みのため表示しません 内容を確認する

284
NAME IS NULL[sage]   投稿日:2017/03/08 20:59:53  ID:???.net(482)
>281
暗黙の型変換かなあ

bcpじゃないけどバッチ処理で値によって引っかかって
手前側でcastして明示的に型変換かけてから突っ込んだことがあるな

1レコード削除したら動くとか、ケツに持ってったら動く
とは整合性取れないけども

285
NAME IS NULL[sage]   投稿日:2017/03/08 22:54:59  ID:???.net(482)
問題のレコードの末尾にエスケープコードか何か入ってるんじゃないの?

286
NAME IS NULL[sage]   投稿日:2017/03/09 10:10:24  ID:???.net(482)
NVARCHAR内のNULL文字(NCHAR(0))を検索または置換する方法はありますか?
LIKE '%'+NCHAR(0)+'%'
REPLACE(name, NCHAR(0), '')
等を試してみましたが、だめでした。
コメント1件

287
NAME IS NULL[sage]   投稿日:2017/03/09 13:06:16  ID:???.net(482)
>286
正しいやり方かどうかはわからんが
select * from table where name like N'%' + nchar(0) + N'%' collate JAPANESE_BIN
で検索できたよ
コメント1件

288
286[sage]   投稿日:2017/03/09 17:08:09  ID:???.net(482)
>287
できました
ありがと

289
NAME IS NULL[sage]   投稿日:2017/03/09 17:13:43  ID:???.net(482)
SQLサーバっていまだにNとかncharとかcollateとかいるのか
コメント1件

290
NAME IS NULL[sage]   投稿日:2017/03/09 22:25:14  ID:???.net(482)
>289
ncharは他のdbでもいるだろ
コメント1件

291
NAME IS NULL[sage]   投稿日:2017/03/10 11:42:27  ID:???.net(482)
>290
あ、そうなの?
最近PostgreSQLしかやってないから、他DBがどうなってるのか知らない

292
NAME IS NULL[sage]   投稿日:2017/03/28 10:32:41  ID:???.net(482)
1回目もクエリだけやたら時間がかかるっていう経験ないですか?
2回目は速い
改善する方法あったら教えてください
コメント1件

293
NAME IS NULL[sage]   投稿日:2017/03/28 13:20:36  ID:???.net(482)
>292
まずは、やたら時間がかかる原因を調べる。実行計画を見るとか。

そういうクエリ自身の問題ではない場合で、以下にあてはまるのなら、0回目のクエリを発行してデータをキャッシュにのせればいい。
(0回目:データベース起動後に重いクエリを実行するとか、テーブル全体を読んでキャッシュにのせるとか)
・単に対象データを物理ディスクから大量に読む必要がある
・なおかつ何回も類似クエリを発行する必要がある
・1回目が遅いのも改善したい

キャッシュミス多発なら、キャッシュサイズを拡大する。
ハード性能的に無理なら、より性能の良いハードに乗り換える。

294
NAME IS NULL[sage]   投稿日:2017/03/28 14:33:14  ID:???.net(482)
DBサイズくらいのメモリ積め

295
NAME IS NULL[sage]   投稿日:2017/03/28 14:55:00  ID:???.net(482)
今調べたら、Windows Serverは余裕でTBの領域に入ってるな。2016でmax 24TB。
メモリは32GB*4の128GBで17万程度。

296
NAME IS NULL[sage]   投稿日:2017/03/28 16:34:29  ID:???.net(482)
ストアドにしてコンパイル済みにする手もあるが

297
NAME IS NULL[sage]   投稿日:2017/03/30 00:46:03  ID:???.net(482)
ストアドにしたって、データのキャッシュミスは減らんと思うが
コンパイル時間で1回目だけやたら時間がかかるとか、どんな複雑なクエリ書いたらそうなるってんだ
コメント1件

298
NAME IS NULL[sage]   投稿日:2017/03/30 15:01:26  ID:???.net(482)
>297
単にディスクからの読み込み量が多いだけでしょ
場合によっては、その読み込みが不要な場合もあるから、1回目のクエリから高速化できかもしれん
コメント1件

299
NAME IS NULL[sage]   投稿日:2017/04/02 18:33:09  ID:???.net(482)
>298
データがキャッシュにヒットする以外に
ディスクからの読み込みが不要で高速化できる場合の具体例をあげてくれ
コメント1件

300
NAME IS NULL[sage]   投稿日:2017/04/03 13:31:22  ID:???.net(482)
>299
説明不足ですまん。
ディスクからの読み込みがゼロになるということじゃなくて、不要な読み込みがなくなるかもという話。
例えば、
・インデックスがなくseq scan発生
・インデックスはあるがクエリがまずくてインデックスが使われずseq scan発生
とか。
コメント1件

301
NAME IS NULL[sage]   投稿日:2017/04/04 08:11:48  ID:???.net(482)
>300
それストアドにしたって解決されないわけだが
むしろ実行計画の生成タイミングで悪化する可能性もあるんじゃね
SQL Serverのストアドがいつ実行計画立てるかしらんけど
コメント1件

302
NAME IS NULL[sage]   投稿日:2017/04/04 10:59:56  ID:???.net(482)
>301
ストアドは関係ないよ
クエリの内容そのものに問題があったり、indexを作ったりしたら読み込みページ数が減るかもねという話
なので、まずは実行計画を見るところから始めましょうということ

303
NAME IS NULL[sage]   投稿日:2017/04/04 11:06:24  ID:???.net(482)
舐めるデータが多くて、初回はハードディスクから、2回目以降はキャッシュされたメモリーから
だから速度が違う

ストアドにすることで、コンマ何秒かは改善するかもしれないが、その程度

あとインデックスを見直すか

304
NAME IS NULL[sage]   投稿日:2017/04/04 11:23:43  ID:???.net(482)
ストアドストアド言ってる人は、90年代に生きてるんですかね

305
NAME IS NULL[sage]   投稿日:2017/04/04 12:18:00  ID:???.net(482)
今どきはストアド使わんのがトレンディなんか?
コメント4件

306
NAME IS NULL[sage]   投稿日:2017/04/04 13:22:41  ID:???.net(482)
>305
実行時間短縮が目的でストアドを使う奴はいないだろうね
コメント1件

307
NAME IS NULL[sage]   投稿日:2017/04/04 14:30:20  ID:???.net(482)
数百KBレベルのクエリなら、parse->palnningでコンマ何秒かかかるかもしれん

308
NAME IS NULL[sage]   投稿日:2017/04/04 19:25:55  ID:???.net(482)
>306
関係ない事を言うのに俺にアンカつけんのやめてもらえんかな
俺までバカに見えるやろが
コメント1件

309
NAME IS NULL[sage]   投稿日:2017/04/05 10:42:22  ID:???.net(482)
>308
>305がバカな発言だと思ってないんだw
コメント1件

310
NAME IS NULL[sage]   投稿日:2017/04/05 12:26:42  ID:???.net(482)
>309
だからなんだよ?
お前がそう思ってる事が今なんか関係あるのか?
バカしかいないのかここは
コメント1件

311
NAME IS NULL[sage]   投稿日:2017/04/05 13:18:00  ID:???.net(482)
>310
> だからなんだよ?
>305みたいなマヌケなレスするなってことだよ
そんなこともわからんバカなの?
コメント1件

312
NAME IS NULL[sage]   投稿日:2017/04/05 13:28:16  ID:???.net(482)
>305
いつまでも暴れられると困るので。
> 今どきはストアド使わんのがトレンディなんか?
そういうトレンドはありません。

313
NAME IS NULL[sage]   投稿日:2017/04/05 20:27:50  ID:???.net(482)
まあしかし、ORMの普及や回線速度の向上とかでストアド不要論が優勢な流れはあるかと
昔はトラフィック減らして速度向上させるためにストアドって流れはある事はあったからな
コメント2件

314
NAME IS NULL[sage]   投稿日:2017/04/05 21:15:40  ID:???.net(482)
>311
だから関係ないレスでアンカつけんのやめてもらえんかな
俺までバカに見えるやろが

315
NAME IS NULL[sage]   投稿日:2017/04/05 21:58:10  ID:???.net(482)
>313
SQLSeverと親和性高いC#がEF推しているのを見ると不要論が優勢でも不思議じゃないな
コメント1件

316
NAME IS NULL[sage]   投稿日:2017/04/06 10:39:37  ID:???.net(482)
>315
EFとストアドに何の関係が?

317
NAME IS NULL[sage]   投稿日:2017/04/06 10:50:33  ID:???.net(482)
>313,315
ORMやEFが広まれば、よりストアドプロシージャ・ファンクションの需要が高まる気がするが。
ドメインロジックはサーバ側で実装し、クライアントはそれを使用するだけというスタイル。

318
NAME IS NULL[sage]   投稿日:2017/04/06 13:19:00  ID:???.net(482)
そんな思想があったらRailsなんぞ流行らんわ
何処の時空の話だよ
コメント1件

319
NAME IS NULL[sage]   投稿日:2017/04/06 13:59:58  ID:???.net(482)
>318
まぁ、RailsだろうがEFだろうが、データをどかっと取ってきて、クライアントコードで
ごりごりドメインロジックを実装するような層には関係ない話かな。

320
NAME IS NULL[sage]   投稿日:2017/04/06 14:11:49  ID:???.net(482)
そんな話じゃねえよ
EFが何しにPOCOなんての売りにしてたかって話だ
コメント1件

321
NAME IS NULL[sage]   投稿日:2017/04/06 15:42:00  ID:???.net(482)
>320
つまりは、
> データをどかっと取ってきて、クライアントコードで
> ごりごりドメインロジックを実装する
ということだろ?
POCOメインのプログラマには関係ない話だよ。

そんな話じゃないなら、どんな話なんだ?

322
NAME IS NULL[sage]   投稿日:2017/04/06 15:53:14  ID:???.net(482)
DB側でスキーマ書いて処理も書いてってのが古い思想という話をしている
開発スピードが無闇に上がってスキーマ変更朝令暮改でって今時はな
コメント1件

323
NAME IS NULL[sage]   投稿日:2017/04/06 15:58:59  ID:???.net(482)
>322
> DB側でスキーマ書いて処理も書いてってのが古い思想という話をしている
なるほどね。
でも、ドメインロジックをデータベース側に寄せるか、クライアント側に寄せるかという問題は、
今でも存在する。ふるいも新しいもないと思うが。

> 開発スピードが無闇に上がってスキーマ変更朝令暮改でって今時はな
それこそ、データベース側にドメインロジックの実装を寄せた方がいいのでは?

324
NAME IS NULL[sage]   投稿日:2017/04/06 16:05:36  ID:???.net(482)
例えば、2003年のMartin Fowlerのブログポスト:
『ドメインロジックとSQL』
http://bliki-ja.github.io/DomainLogicAndSQL/

ここに書かれていることは、全然古いとは思わない。
逆に、自動生成されるコードをメインに使うようになる場合は、ドメインロジックを
ストアドファンクションで実装してViewにした方がいい場合も結構あると思うんだが。
コメント1件

325
NAME IS NULL[sage]   投稿日:2017/04/06 16:19:28  ID:???.net(482)
昔々のウォーターフォールで上流で設計決まる時代ならそれもよかろうさ
だが今はデータ構造から卓袱台返される
その時アプリとDB両方に手ぇ入れるのと
アプリだけで済むのとどっちが早いか?
自明だろ

326
NAME IS NULL[sage]   投稿日:2017/04/06 18:53:09  ID:???.net(482)
DB側でごりごり書いたストアドって、InMemoryでUnitTestできるのかい?

327
NAME IS NULL[sage]   投稿日:2017/04/06 20:44:49  ID:???.net(482)
Web系とかで高速開発/デプロイな現場なら
コードファーストも面白いし効率あがりそうと思うけど
DevOpsの時代っても考えなしに書くでなし
結局はV字開発なんだからDB側でスキーマ決めるくらい
やれば?みたいな思いはあるな古い考えなんだろうけど

SIerソルジャーだから>324もよくわかる
SQL一発取得+コーディングレスなアプローチが
楽/効率的な局面は現場じゃザラにあるよねえ

SSRS/PowerBIとかDataSpiderだの触るととくにそう
ストアド書いてぽちぽちするだけでけっこう
運用に耐えるもんできるし変更追従も保守も楽だしな
基幹から社内向けWebで集計帳票や明細表な要件なら
SQL以外のコーディング自体がそもそもバカバカしい
コメント1件

328
NAME IS NULL[sage]   投稿日:2017/04/08 22:23:48  ID:???.net(482)
>327
純粋なコードファーストはある程度以上の規模だと使い物にならんと思ってた
スキーマはDB側でかっちり決めんと話にならんだろうと

これが古い考えだと言われればそうなんだろうかと思ってた
が、既存のデータベースからコードファーストなんて手法が出来た所を見ると
やはりスキーマをDB側で決めるのは今でも必要なんじゃないか

ストアドにいろんなものを閉じ込めるのは、手法の新旧で言えばそれこそ古い手法だと思う
ストアドの保守はアプリの保守よりコストが高いのが現状じゃないかと思う
ストアドの保守がアプリの保守より低コストだって言う所ならそれを採用するのもありなんだろうけど
コメント1件

329
NAME IS NULL[sage]   投稿日:2017/04/09 16:01:53  ID:???.net(482)
>328
ストアドって何よ?
コメント2件

330
NAME IS NULL[sage]   投稿日:2017/04/09 18:40:23  ID:???.net(482)
with(nolock)をselect文全てに付けるとヤヴァイ?
ググったらコミット前のデータが返ってくるとか
ページ分割が起こった場合行の重複や欠落が発生するとか書いてあるけど
今仕事で触ってる既存のselect文のコード全部そうなってる
コメント2件

331
NAME IS NULL[sage]   投稿日:2017/04/09 19:22:13  ID:???.net(482)
ヤバイかどうかは業務内容による

332
NAME IS NULL[sage]   投稿日:2017/04/10 14:48:01  ID:???.net(482)
>329
質問の真意が図りかねるが
>ストアドにいろんなものを閉じ込める
の事であるなら、たとえば
ビジネスロジックをストアドとして実装することや
DBアクセスの結果をストアドの帰りとすることでスキーマ変更をアプリに意識させないこと
などの手法を指してる

純粋にストアドの意味が分からないなら
DBに格納できる一連の手続きかな
コメント1件

333
NAME IS NULL[sage]   投稿日:2017/04/10 15:17:23  ID:???.net(482)
>330
常に1スレッドからしか触られない前提なら別にヤバくない
コメント2件

334
NAME IS NULL[]   投稿日:2017/04/10 22:02:15  ID:mMYNtWws.net
ストアドってPGのたしなみとして
できて当たり前だと思うけど
今の新人は>329みたいなのが
多いのか。

335
NAME IS NULL[sage]   投稿日:2017/04/11 07:27:15  ID:???.net(482)
>333
誰も同時に触らないならnolock必要なくね?
何のために入れたのやら

何処かでnolock入れると速くなるよ!とかデッドロック回避できるよってのを聞いてよく考えずに入れたのか

同時に一人(1スレッド?)しか触らないなら
2つのロックが対立することは無いんだから
コメント1件

336
NAME IS NULL[sage]   投稿日:2017/04/11 13:39:32  ID:???.net(482)
>335
nolock指定すれば雀の涙ほど速くなる
それ以外の理由? 知らんそんなものは管轄外だ

337
NAME IS NULL[sage]   投稿日:2017/04/11 19:12:06  ID:???.net(482)
Hyperーvのレプリカサーバーに入っているSQLSERVERもライセンスって必要ですか?
コメント1件

338
NAME IS NULL[sage]   投稿日:2017/04/11 19:42:30  ID:???.net(482)
>337
OSのライセンスが2つ必要ならそりゃSQLServerのライセンスも同じじゃね
コメント1件

339
NAME IS NULL[sage]   投稿日:2017/04/11 20:03:02  ID:???.net(482)
>338
ありがとうございました。
不要と理解しました

340
NAME IS NULL[sage]   投稿日:2017/04/12 01:11:00  ID:???.net(482)
>333,335
スレッド一つでも複数コネクション持ってゴニョゴニョすると問題が出る気がする
コメント1件

341
NAME IS NULL[sage]   投稿日:2017/04/12 03:42:34  ID:???.net(482)
>340
さすがにそれはない
まさかCOMMITせん訳でもあるまい?
コメント1件

342
NAME IS NULL[sage]   投稿日:2017/04/12 06:15:01  ID:???.net(482)
>330
マルチスレッドの場合でも全トランザクションを
同期化してスレッドセーフにすればヤバくない

343
NAME IS NULL[sage]   投稿日:2017/04/13 00:21:38  ID:???.net(482)
>341
コミットしてから次のトランザクション始めるならコネクション二つとか必要ないだろ
ようは同時実行するトランザクションがあるかどうかで、スレッドとか関係ないって話

344
NAME IS NULL[sage]   投稿日:2017/04/13 14:55:41  ID:???.net(482)
スレッド内でトランザクション完了しないで別のトランザクション始めるとかどんな状況だよ
特にSQLServerだと無駄に昇格起こってMSDTCエラー起こすぞ
コメント3件

345
NAME IS NULL[sage]   投稿日:2017/04/13 15:49:12  ID:???.net(482)
スレッドがどうこうとか、あんまり関係ない。
別プロセスでも話は同じ。

要は、トランザクション分離レベルがダーティーリードになっても大丈夫かどうかで決定すべき。
ダーティーリードとは、自分以外の誰か(別プロセスも含む)のコミット前のデータを読むことに
なっても問題ないかどうかという話。

346
NAME IS NULL[sage]   投稿日:2017/04/13 17:00:25  ID:???.net(482)
>344
シーケンスなかった時に、連番とるためにやったことあるわ
コメント1件

347
NAME IS NULL[sage]   投稿日:2017/04/13 19:40:53  ID:???.net(482)
>346
俺もよくやるよ。>344が無知なだけ
コメント1件

348
NAME IS NULL[sage]   投稿日:2017/04/13 19:43:06  ID:???.net(482)
>344
晒し

349
NAME IS NULL[sage]   投稿日:2017/04/13 19:49:56  ID:???.net(482)
>347-348
まさかと思うが入れ子トランザクションでドヤってんじゃあるまいな…?
コメント1件

350
NAME IS NULL[sage]   投稿日:2017/04/13 20:10:39  ID:???.net(482)
>349
何のために別にコネクション(トランザクション)が必要か考えたら
入れ子トランザクションではダメなことぐらいわかるだろうに
コメント2件

351
NAME IS NULL[sage]   投稿日:2017/04/13 20:15:54  ID:???.net(482)
>350
連番取るのにトランザクション外からやるっての?
ますますもって意味わからんぞ
コメント1件

352
NAME IS NULL[sage]   投稿日:2017/04/13 21:36:54  ID:???.net(482)
>351
連番管理用のテーブルと、連番を利用するテーブルを別のテーブルにするんだよ
短時間で終わる連番の発行と、時間のかかる更新系の処理を別トランザクションにすることで
連番管理用のテーブルのロックを解放する
コメント3件

353
NAME IS NULL[sage]   投稿日:2017/04/13 21:43:45  ID:???.net(482)
>350
よーく考えよう

354
NAME IS NULL[sage]   投稿日:2017/04/14 10:56:34  ID:???.net(482)
>352
今となっては、バッドノウハウ
コメント1件

355
NAME IS NULL[sage]   投稿日:2017/04/14 11:06:49  ID:???.net(482)
結論は何も考えずにnolock入れるつもりなら止めとけってことじゃないの

356
NAME IS NULL[sage]   投稿日:2017/04/14 15:02:31  ID:???.net(482)
>352
それフツーに不整合出ねえ?
コメント1件

357
NAME IS NULL[sage]   投稿日:2017/04/14 15:57:02  ID:???.net(482)
>352
出ませんが、何か?

358
NAME IS NULL[sage]   投稿日:2017/04/14 20:02:12  ID:???.net(482)
>354
今時の代替手段はどんなの?

>356
何を懸念してるか知らんが問題ない
欠番の発生は想定内
コメント2件

359
NAME IS NULL[sage]   投稿日:2017/04/14 20:21:40  ID:???.net(482)
>358
シーケンス

360
NAME IS NULL[sage]   投稿日:2017/04/14 20:31:11  ID:???.net(482)
>358
> 今時の代替手段はどんなの?
シーケンスだろ

361
NAME IS NULL[sage]   投稿日:2017/04/14 21:37:16  ID:???.net(482)
シーケンス互換性ないじゃん
コメント1件

362
NAME IS NULL[sage]   投稿日:2017/04/15 14:02:49  ID:???.net(482)
>361
シーケンスと何が互換性ないって?
コメント1件

363
NAME IS NULL[sage]   投稿日:2017/04/16 08:42:49  ID:???.net(482)
>362
違う
シーケンスとかIDENTITYは製品間で互換性無いって言ってんだろ

364
NAME IS NULL[sage]   投稿日:2017/04/17 00:45:52  ID:???.net(482)
今の流れでそれがどうだと?

365
NAME IS NULL[sage]   投稿日:2017/04/17 13:04:14  ID:???.net(482)
シーケンスって…なに?
コメント1件

366
NAME IS NULL[sage]   投稿日:2017/04/17 14:40:37  ID:???.net(482)
>365
つ google

367
NAME IS NULL[sage]   投稿日:2017/04/17 16:51:13  ID:???.net(482)
何でこの程度のことググらないのか、毎度ながら不思議

368
NAME IS NULL[sage]   投稿日:2017/04/18 12:21:23  ID:???.net(482)
むしろお前が教えればいいだけなのにどうしてわざわざググらなければいかんのか

369
NAME IS NULL[sage]   投稿日:2017/04/18 13:06:43  ID:???.net(482)
教えてくれる奴が来るまで待つとか馬鹿でしょ

370
NAME IS NULL[sage]   投稿日:2017/04/18 19:21:58  ID:???.net(482)
いや待てよ勝手に理解したつもりになるな

371
ich1[]   投稿日:2017/04/21 16:41:35  ID:R/eXxgbc.net
https://goo.gl/q9Ml0S
これは嘘でしょ?本当だったら落ち込むわ。。

372
NAME IS NULL[sage]   投稿日:2017/04/22 01:49:55  ID:???.net(482)

373
NAME IS NULL[sage]   投稿日:2017/04/25 22:38:34  ID:???.net(482)
最近DB触り始めたんですが、チューニング的なことをする必要が出てきてT-SQLを知りたいです
例:)http://outofmem.tumblr.com/post/77053433681/sql-serverdb%E5%86%85%E3%81%...
↑こんなふうにシステムビューとか含めてリファレンス的に読める本があれば教えて欲しいんですがどうですか

調べてもゼロ年代の本しかなくて、いきなり買うのも勇気がいります……
ちなみに日本語しかダメです

374
NAME IS NULL[sage]   投稿日:2017/04/25 23:17:16  ID:???.net(482)
>332
>「ストアド」 = 「DBに格納できる一連の手続き」

いかにもシステム屋さんな定義だなw
コメント5件

375
NAME IS NULL[sage]   投稿日:2017/04/26 12:56:31  ID:???.net(482)
>374
では、君の素晴らしい定義を教えてもらおうかな
コメント1件

376
NAME IS NULL[]   投稿日:2017/04/26 20:31:45  ID:yyy4jyWJ.net
いきなり答えあわせじゃおもしろくないから
>374に笑われない定義は何かな?」ゲームしようぜ

377
NAME IS NULL[sage]   投稿日:2017/04/26 22:45:55  ID:???.net(482)
べつに>374の定義はどうでもいいけど
>374が何屋さんを自称するのか気になるわ

378
NAME IS NULL[sage]   投稿日:2017/04/29 00:21:18  ID:???.net(482)
まだほとぽりは冷めてないぜ>374

379
374[sage]   投稿日:2017/04/29 01:07:23  ID:???.net(482)
健全でない言葉が含まれているため表示しません 内容を確認する

380
NAME IS NULL[sage]   投稿日:2017/04/29 09:51:21  ID:???.net(482)
すみません。質問させてください。
CREATE PROCEDUREについて、
ストアドプロシージャが既に登録されていたらDROP後、CREATE→OK
ストアドプロシージャが既に登録されていたらなにもしない  →NG
となるのはなぜなのでしょうか?

https://technet.microsoft.com/ja-jp/library/ms175502(v=sql.105).aspx」の
「バッチの使用に関するルール」に「・・・CREATE ステートメントはバッチの最初に記述する必要があります」
とあるので構文エラーなのかなとは思うのですが、構文エラーとした理由はあるのでしょうか?

これは出来る
IF OBJECT_ID ( 'dbo.プロシージャ', 'P' ) IS NOT NULL BEGIN
DROP PROCEDURE dbo.プロシージャ
END
GO
CREATE PROCEDURE dbo.プロシージャ・・・

これはできない
IF OBJECT_ID ( 'dbo.プロシージャ', 'P' ) IS NULL BEGIN
CREATE PROCEDURE dbo.プロシージャ・・・

381
NAME IS NULL[]   投稿日:2017/04/29 19:13:45  ID:SlYPafLa.net
create or replace
じゃ不満なのか?

382
NAME IS NULL[sage]   投稿日:2017/04/29 20:46:20  ID:???.net(482)
不満はないんだけど、なんでかなと。そういうものなんだと思っときます。

383
NAME IS NULL[sage]   投稿日:2017/05/07 03:32:11
物凄く初歩的で申し訳ないのですが、SQL Server2008をSQL Server2014へ
アップグレードでインストールした後、不要な2008を消したいんですが
普通にアンインストールでいいものなんでしょうか。
コメント2件

384
NAME IS NULL[sage]   投稿日:2017/05/07 06:15:58
>383
たぶん良いんじゃないか。
結果を教えてくれ。

385
NAME IS NULL[sage]   投稿日:2017/05/10 00:57:31
>383ではないが
2008R2 Express SP3を2016 Expressにして、2008をアンインストールしてみた
軽く動かした感じでは動いてるっぽいけど
2008のアンインストールが色々手間だった

まあ実務マシンなら、俺ならアンインストールせずにスタートメニューだけ消しとく

386
NAME IS NULL[sage]   投稿日:2017/05/10 21:21:25
俺なら2008アンインストール、2016インストールするけど

387
NAME IS NULL[]   投稿日:2017/05/11 19:47:33
Windows ServerでSQL Server 2012を入れております
SSMSでバックアップのスケジュールを確認しようとしたんですが管理にメンテナンスという項目がありません
SSMSを見てもExpressという表示はないんですが原因って他にありますか?

388
NAME IS NULL[sage]   投稿日:2017/05/11 19:51:28
ログインユーザーがsysadminじゃなかったってのは昔あったな
コメント1件

389
NAME IS NULL[sage]   投稿日:2017/05/12 13:25:14
https://msdn.microsoft.com/ja-jp/library/ms178127.aspx
Agent XPsが無効だとメンテナンスプランやらエージェント使えないんでは
あー、でもこれメンテナンスの項目は出てた気がするなあ
コメント1件

390
NAME IS NULL[sage]   投稿日:2017/05/12 14:33:52
今↓の現象が発生しました。

SSMS2016 で日本語入力が行えない IMEがオフになったままになる
https://social.msdn.microsoft.com/Forums/ja-JP/09e3ebdf-f9ec-457c-aedd-e521e303...

物凄い致命的な不具合だと思うんですが、みんなの大丈夫ですか?

391
NAME IS NULL[]   投稿日:2017/05/12 20:07:03
>388
sysadminというのはロールですよね?
Administratorですし、sysadminにもチェックはありました

392
NAME IS NULL[sage]   投稿日:2017/05/12 22:11:13
SSMSってエディション関係ないからな。DBエンジンがEXPRESSだったって落ちじゃないのか
接続先のバージョンとか出てたっけ
コメント1件

393
NAME IS NULL[sage]   投稿日:2017/05/13 06:25:13
2016のssmsとexpress使ってるけど、imeの問題は出ないぞ

394
NAME IS NULL[sage]   投稿日:2017/05/13 07:09:40
Visual Studio 2015 Express 使ってるけどごくまれ(数ヵ月に一回ぐらい)IME がOnにならなくなる時がある
メモ帳とかを起動してIMEをOnにしたりするとVisual Studioでも普通に使えるようになるからあまり気にしてないけど

395
NAME IS NULL[sage]   投稿日:2017/05/13 11:11:12
>389
項目は出ているけど開けなかった記憶あるわ
項目自体出てないのは>392の通りExpress使っているとかじゃないのかね

396
391[]   投稿日:2017/05/13 23:35:10
すいません、たぶんDBのほうがExpress使ってるかもしれません
どこで確認できますか?また自動でバックアップする方法とかありますか?
コメント1件

397
NAME IS NULL[sage]   投稿日:2017/05/14 00:45:41
SqlServerに特化したPowerShellがあるらしいけど、使ってる人いるのかな?
コメント1件

398
NAME IS NULL[sage]   投稿日:2017/05/14 01:42:00
>396
マジで言ってるのかアレだなあ...
&#9642;&#65039;エディション確認
・繋いだインスタンスを右クリックでプロパティ
・masrerデータベースで
select @@version

&#9642;&#65039;バックアップ
Backup database コマンド書いたSQLファイルを
sqlcmd/osqlで呼ぶbat書いてタスクスケジューラに登録

expressで開発、検証じゃなく本番運用する気なら
悪いこといわんからstandard買って載せ替えるが宜しい
奉行とかPCAとかのパッケージバンドルかねえ

399
NAME IS NULL[]   投稿日:2017/05/20 15:16:05
アップルラボ 詐欺 怪しい 疑惑 iPhone 修理 非正規店 グレーゾーン 韓国 中国
根本つとむ 中卒 ブサイク ブス キモい 詐欺師 生活保護
根本つとむ 逮捕 犯罪者 罪状 重要参考人 障害者 アスペルガー症候群
アップルラボ 被害者の会 壊れた おかしい 犯罪 故障 iPhone7 スティーブジョブズ
アップルラボ 脱税 iPad 脱獄 水没修理 MacPro 買取
アップルラボ 誇大広告 2ちゃんねるで宣伝 消費者センター 粉飾決済 恥 ダメ
アップルラボ 迷惑企業 最低 やめて欲しい 中卒 変 創価学会 中国

400
NAME IS NULL[sage]   投稿日:2017/05/20 18:14:01
>397
> SqlServerに特化したPowerShellがあるらしいけど
どこの情報?
普通に [Data.SqlClient] 経由で使うのとなにか違うの?

401
-virtual-environments.aspx []   投稿日:0000/00/00 00:00:00

402
NAME IS NULL[sage]   投稿日:2017/06/02 21:45:56  ID:???.net(482)
SQLはmacでも使えますか?

403
NAME IS NULL[sage]   投稿日:2017/06/02 22:27:19  ID:???.net(482)
>403
使えない

404
NAME IS NULL[sage]   投稿日:2017/06/02 22:47:59  ID:???.net(482)
SQL自体は使える(書ける)

405
NAME IS NULL[sage]   投稿日:2017/06/03 17:30:12  ID:???.net(482)
じゃやっぱりWinマシンを買うところからってことですね

>405
使えないということと書けるの違いはどう理解すればいいですか?

406
NAME IS NULL[sage]   投稿日:2017/06/03 17:57:23  ID:???.net(482)
>406
SQLとSQL serverの違いはわかってる?

407
NAME IS NULL[sage]   投稿日:2017/06/03 21:38:11  ID:???.net(482)
んと、SQLはプログラミング言語で
SQLserverはMS社のデータベース
コメント1件

408
NAME IS NULL[sage]   投稿日:2017/06/03 21:39:40  ID:???.net(482)
>408
アンカー忘れましたが>407

409
NAME IS NULL[sage]   投稿日:2017/06/03 22:28:24  ID:???.net(482)
何に混乱しているかというと
SQLserverのWikiを読むと言語はc,c++,c#とある
でも他の本ではSQL自体をプログラミング言語と書いてある
そこでちょっと混乱
https://ja.m.wikipedia.org/wiki/Microsoft_SQL_Server

410
NAME IS NULL[sage]   投稿日:2017/06/03 22:59:56  ID:???.net(482)
その記載ってSQL Serverを作成した言語の話じゃないかな

411
NAME IS NULL[sage]   投稿日:2017/06/03 23:04:52  ID:???.net(482)
>411
そういうことなのですか
ありがとうございます
ではもとい、Winマシンを買うのは必須ですね

412
NAME IS NULL[sage]   投稿日:2017/06/03 23:29:53  ID:???.net(482)
仮想環境入れて、そこでWindowsを動かすという方法もあるけれど
どういう目的で使うのか、どの位の頻度で使うのかにもよるだろうね
コメント1件

413
NAME IS NULL[sage]   投稿日:2017/06/03 23:45:52  ID:???.net(482)
>413
会社は普通にWindows機なんで、macは自宅学習用です
プログラミング自体初めてなので家でも勉強しようと思って

414
NAME IS NULL[]   投稿日:2017/06/04 00:09:22  ID:6QGLXM/f.net(2)
macはバカが使うものだからバカになりたくなかったら今すぐ捨てた方がいいね
コメント2件

415
NAME IS NULL[sage]   投稿日:2017/06/04 00:14:22  ID:???.net(482)
>415
そういう煽りには乗りませんので

416
NAME IS NULL[]   投稿日:2017/06/04 00:25:56  ID:6QGLXM/f.net(2)
>416
煽りを装った本音なんだけどなあ

417
NAME IS NULL[sage]   投稿日:2017/06/04 00:34:24  ID:???.net(482)
>412
必須じゃねーよ

418
NAME IS NULL[sage]   投稿日:2017/06/04 00:35:50  ID:???.net(482)
>414
MacBookPro15なら、そこそこパワーがあるしMemoryも乗っているから
仮想環境でそれなりに動かす事はできる
それ以外のときはBoot Camp使って、起動を切り替える方が良いかもしれない
SSDだろうから切り換えしてもそれほどストレスにはならないと思う

419
NAME IS NULL[sage]   投稿日:2017/06/04 00:42:41  ID:???.net(482)
>414
なら仮想環境に入れた方が早いな
コメント1件

420
NAME IS NULL[sage]   投稿日:2017/06/04 09:26:51  ID:???.net(482)
>419
>420
ありがとうございます

macにWindows入れること検討してみたいと思います
macはモニターの色は綺麗だし普段使いには満足してますが、office系ソフトはショートカットが使えなくて戸惑うし一長一短ですね

家に仕事持ち込むわけではないので、まずは会社のWindowsで慣れてから再度考えようと思います

421
NAME IS NULL[sage]   投稿日:2017/06/04 09:35:30  ID:???.net(482)
sqlを練習する程度ならmysqlでもいいんじゃないか?
Macでも動くし。

422
NAME IS NULL[sage]   投稿日:2017/06/04 10:27:16  ID:???.net(482)
>422
そうなんですか!?
前に調べてた時macでも使用可なのがあった記憶がベースで今回の質問に至っておりまして…
それがmysqlだったのかもしれません
ありがとうございます!
まずはそこからやってみます

423
NAME IS NULL[sage]   投稿日:2017/06/04 14:59:13  ID:???.net(482)
>423
そんなに驚くなよ。
sql server expressはwindows専用だが
それ以外のフリーなdbソフトは大体はMacでも動くんじゃないか?俺はMac持ってないが

424
NAME IS NULL[sage]   投稿日:2017/06/09 08:22:54  ID:???.net(482)
SQLServerのデータファイルの自動拡張がタイムアウトしたってイベントログ出てるんですが
自動拡張時のサイズ小さくすれば解決するもんなのかな?
書き込みが頻発するとディスクアクセスがボトルネックになりそうなんだが

そもそものタイムアウトが発生するところをケアすべきよね
やっぱ

425
NAME IS NULL[sage]   投稿日:2017/06/09 11:20:11  ID:???.net(482)
>425
自動拡張の初期値はファイルサイズのX%なのでサイズがでかくなるにつれ拡張サイズも増えて処理がタイムアウトするから拡張サイズは固定値にした方が良いよ
ログファイルじゃなくてデータファイルならそもそものデータ見積もりが誤っているという話もあるが

426
383[sage]   投稿日:2017/06/14 12:27:42  ID:???.net(482)
すんません、
「やってみたら?まぁ上手くいくわけないんだけどなwせいぜい絶望してファントム生んでろw誰もエンゲージしねーけどw」
って事かと思って保留してました。

実践していただいた方もいて、助かりました。やってみます。
自分のPCなんで最悪HDDのイメージ取ってから試せば何とでもなるんですけどね。
試行錯誤できる環境を作る時間がなくて。
でもHDDの空き容量もなくて。
そして人生の余裕もない。
もう死にたい。全てが嫌になった。

427
NAME IS NULL[sage]   投稿日:2017/06/19 23:23:03  ID:???.net(482)
SQL2014の自動拡張で質問です。
例えば10MBまたは100MBと指定して拡張されたタイミングまたはログというのは何処で確認できるものでしょうか?

SQL2008だと「ディスク使用量」レポートで確認できるという記事を見かけて
2014環境で確認しましたが思うような結果が得られませんでした。
復旧モデルが単純だったせいなのか、2014では別のレポートで出力出来るのか判断がつきかねています。

ど素人なので的外れな事を書いているかもしれませんが何かヒント頂ければ幸いです。

428
NAME IS NULL[sage]   投稿日:2017/06/21 01:20:46  ID:???.net(482)
SSMSで管理のSQL Serverログとか
OSのイベントビューアでアプリケーションログとかになんか吐いてなかったっけ

429
NAME IS NULL[]   投稿日:2017/06/21 12:19:47  ID:HMTE/EOf.net
なんでちょっとMSの中の人よりの言いかたなんだよw
コメント1件

430
NAME IS NULL[sage]   投稿日:2017/06/21 20:48:17  ID:???.net(482)
どの発言がどうMSの中の人よりなのか

431
NAME IS NULL[]   投稿日:2017/06/21 21:12:30  ID:eFBPC0xl.net
気になるんだったらもう少し謙虚に聞いたら?

432
NAME IS NULL[sage]   投稿日:2017/06/22 23:55:36  ID:???.net(482)
>429
ありがとうございます
ご鞭撻頂いた項目で確認したいと思います

433
NAME IS NULL[sage]   投稿日:2017/06/23 06:45:25  ID:???.net(482)
>433
ご鞭撻?

434
NAME IS NULL[sage]   投稿日:2017/07/02 11:27:25  ID:???.net(482)
鞭打ちの刑

435
NAME IS NULL[sage]   投稿日:2017/07/02 17:23:55  ID:???.net(482)
質問させてください。

SQLServer2008 R2で、主キーにクラスタ化インデックスを指定されたあるテーブルに対し、
主キーを指定した単純なSelect文を発行して実際の実行プランを表示させたところ、なぜか「TableScan」となります。

・WHERE句に主キーを指定したのになぜ「Clustered index seek」にならないのでしょうか?
少なくとも「Clustered index scan」にならないのはなぜでしょうか?

この点についてなにかこういうところを確認してみろという部分はありますか?
もしくは実行プラン「Table Scan」でもとくに気にするところではないのでしょうか?
特にSelect結果が遅いわけではなく、1秒もかからないで結果が返ってくるので
特に現時点では致命的ではないのですが・・・

その他の状況としては以下の通りです。
・テーブルのレコード数は数万程度。
・もともとのこのDBはSQLServer2005で作られたものであり、バックアップから復元して互換性レベルを上げてある。
・Indexの再構築を行っている
・別な環境で似たような状況をつくりだし、同じくSelectをしてみたところ、想定した通り「Clustered index seek」となった。
・数ヶ月以上運用され、INSERTやUPDATEなどは繰り返し発生している

以上のような状況なのですが、
なにかわかる方がいらっしゃったらよろしくお願いします。

436
NAME IS NULL[]   投稿日:2017/07/02 17:37:33  ID:9thF4go5.net
>436
あのな、インデックスがあればインデックススキャンになるわけじゃないんだよ。データによってはテーブルスキャンの方が速い。それを自動で判断した結果がそういうことだよ。
コメント1件

437
NAME IS NULL[sage]   投稿日:2017/07/02 17:42:57  ID:???.net(482)
>436
UPDATE STATISTICSで統計情報を更新したり、DBCC FREEPROCCACHEで実行プランをクリアするぐらいかね
遅くなる可能性もあるから、事前確認は怠らずにね
コメント1件

438
NAME IS NULL[sage]   投稿日:2017/07/02 17:51:08  ID:???.net(482)
>437-438
早速の返答ありがとうございます。

かならずしもIndex seekのほうがよいわけではないんですね。
統計情報の更新は調べてやってみることにします。
ありがごうとざいます。

439
NAME IS NULL[sage]   投稿日:2017/07/02 18:01:02  ID:???.net(482)
数万程度ならどんな実行計画でも時間は変わらない可能性大だが、
どうしても拘束しないたらヒント文を追加すれば?

440
NAME IS NULL[sage]   投稿日:2017/07/02 18:28:22  ID:???.net(482)
>440
ヒント文でインデックスを指定できるんですね。
これでやってみて時間がかわらなそうであれば元の状態で行こうと思います。
ありがとうございました。

441
NAME IS NULL[sage]   投稿日:2017/07/02 19:24:58  ID:???.net(482)
1フィールドだけのテーブルがあって、その1フィールドにプライマリキーが設定されてるのを見るとなんか微妙な気分になるw

442
NAME IS NULL[sage]   投稿日:2017/07/02 21:27:03  ID:???.net(482)
クラスター化インデックスのあるテーブルってテーブルスキャンは発生しないと思ってんだが違うのか
俺の知る限り、テーブルスキャンするところはすべてクラスターインデックススキャンになるんだが

クラスターインデックスのフルスキャンはテーブルスキャンと実質同じだと思うんだが、何が違うんだろ
テーブルスキャンならクラスターインデックスのリーフページだけをたどれる?

443
NAME IS NULL[sage]   投稿日:2017/07/06 22:57:10  ID:???.net(482)
access単体でデータベースを作成するのと、SQLserver+Vbで作成するのは難易度はどのくらい違いますか?

444
NAME IS NULL[sage]   投稿日:2017/07/07 00:32:55  ID:???.net(482)
だいぶ前にミラーリングが非推奨の機能になっちゃったけど、これからはクラスタ作ってAlwaysOnでやるしか無いのかね
今時オンプレかよとは言わないで
コメント1件

445
NAME IS NULL[sage]   投稿日:2017/07/07 00:49:20  ID:???.net(482)
>444
それだけの内容では色々分からなすぎて
双方の言語経験があるなら差はほとんどない、としか答えられない
コメント1件

446
NAME IS NULL[sage]   投稿日:2017/07/07 13:53:10  ID:???.net(482)
>445
ミラーリングしたい理由はなによ

447
NAME IS NULL[sage]   投稿日:2017/07/07 14:15:59  ID:???.net(482)
ミラーリング、手軽で便利なのにな
コメント1件

448
NAME IS NULL[sage]   投稿日:2017/07/07 19:19:13  ID:???.net(482)
>447
Standardのライセンス2つで安価、手軽に二重化出来ること
試しにAlwaysOn構築しようと思ったら、SQLServer外の条件で制約多くて

449
NAME IS NULL[sage]   投稿日:2017/07/18 22:16:07  ID:???.net(482)
SQL Server 2017 Release Candidate 1
https://blogs.technet.microsoft.com/dataplatforminsider/2017/07/17/first-release-...

てか2016の次2017なのか…RTMには2018ぎりぎりだったり2018になってたりするんじゃ…
コメント1件

450
NAME IS NULL[sage]   投稿日:2017/07/19 01:16:59  ID:???.net(482)
MicrosoftはどうやってSQL ServerをLinuxへポートしたか、ついに2017リリース候補がローンチ
http://jp.techcrunch.com/2017/07/18/20170717how-microsoft-brought-sql-...

451
NAME IS NULL[sage]   投稿日:2017/07/19 07:37:48  ID:???.net(482)
>449
AlwaysOnは知らんが、ミラーリングの場合、待機側はライセンス要らないよ

452
NAME IS NULL[sage]   投稿日:2017/07/19 10:59:44  ID:???.net(482)
ますますミラーリングから離れられないわな
AlwaysOnは1台につき1ライセンス必要だし

453
NAME IS NULL[sage]   投稿日:2017/07/20 00:52:16  ID:???.net(482)
ミラーリングでライセンスいらないのは、完全に待機のみの場合だけだったはず
ダウンタイムの短縮には役に立つけど、負荷分散には使えないぞ

454
NAME IS NULL[sage]   投稿日:2017/07/20 09:59:09  ID:???.net(482)
ミラーリングは負荷分散に使えないが

455
NAME IS NULL[]   投稿日:2017/07/27 22:18:19  ID:Wb6w4MLZ.net

456
NAME IS NULL[sage]   投稿日:2017/07/31 21:23:54  ID:???.net(482)
SQL Server絡みの地雷率が高すぎてうんざりしてきた
windowsしか使えないのでこれ使いました!
プログラムはよくわかんないので中身は適当です!
十数年分の滅茶苦茶に蓄積されたデータは再利用できるようにしてください!
みたいのしかねえ

457
NAME IS NULL[]   投稿日:2017/07/31 21:46:50  ID:lcWS9MWM.net
>457
知識の蓄積もない、Microsoftは利用者を育てることが重要だと思ってないからな。
コメント1件

458
NAME IS NULL[sage]   投稿日:2017/08/01 02:12:40  ID:???.net(482)
>458
サポート費用払う前提だがそれなりの対応してると思う
何か問題でもあったのか?

459
NAME IS NULL[sage]   投稿日:2017/08/01 08:09:16  ID:???.net(482)
>457はMSをディスってるんじゃなくてその利用者をディスってるんだろ
むしろそんな連中でもとりあえずのシステムが組めるMS製品群スゲーって話
まあ引き継ぎとかでうんざりする気持ちはよくわかるが w
コメント1件

460
NAME IS NULL[sage]   投稿日:2017/08/01 10:39:33  ID:???.net(482)
>460
とりあえずじゃないからSQLServerの地雷案件が多いんだよな
設定もろくにせずに遅くなったら魔法の言葉「MSの製品だからしょうがない」で誤魔化そうとする阿呆多すぎる

461
NAME IS NULL[]   投稿日:2017/08/01 10:45:07  ID:XS4cIuUu.net(2)
>459
日本マイクロソフトのサポートもレベルがひどい
コメント1件

462
NAME IS NULL[sage]   投稿日:2017/08/01 12:48:27  ID:???.net(482)
>461
いちゃもんつけたいだけのアホ乙 w

463
NAME IS NULL[]   投稿日:2017/08/01 13:30:45  ID:XS4cIuUu.net(2)
>463
日本ユニシスおつ

464
NAME IS NULL[sage]   投稿日:2017/08/28 21:43:46  ID:???.net(482)
教えてください。

SQLServer の View でトリガを使って別のテーブルの編集を行いたいと思います。
ほぼこのページの通りに書いてみたのですが、View の参照元のテーブルにレコードを追加してもトリガが実行されないようです。
https://msdn.microsoft.com/ja-jp/library/def01zh2(v=vs.120).aspx

実際のテスト環境は以下の通りです。
・DB: A
 テーブル01

・DB: B
 ビュー01 (DB:Aのテーブル01を参照)
  トリガ01 (ビュー01に対して INSTEAD OF INSERT でテーブル 02 に情報を追加)
 テーブル02 (テーブル01のキー項目に関連づけて、追加項目を登録)

DB:B は DB:A を参照した試験環境で、DB:B を削除するだけで後腐れなく試験環境を除去できないかな、と考えました。

DB:A のテーブル01にトリガを仕掛ければ問題なくやりたいことは出来るのですが。
ビューのトリガを動かすのには何か設定が必要なのでしょうか。

465
NAME IS NULL[sage]   投稿日:2017/09/09 20:24:20  ID:???.net(482)
SET ARITHABORT はヘルプやノウハウ掲示板ではON推奨になってるけど、逆の場合もあるようで、とあるストアドでは

パラメータ:日付指定→行番号取得→本処理
1.ADOのデフォルトでOFF: 1秒
2.SSMSのデフォルトでON: 20秒
3.ストアド内で SET ARITHABORT を記述: 20秒(1、2どちらもONでもOFFでも同じ)
4.ストアド内の記述を外し、SSMSのオプション設定でOFFに変更: 1秒

パラメータ:行番号指定→本処理
5.ADOのデフォルトでOFF: 20秒 ←これが問題だった
6.SSMSのデフォルトでON: 20秒
7.ストアド内で SET ARITHABORT を記述: 20秒(5、6どちらもONでもOFFでも同じ)
8.ストアド内の記述を外し、SSMSのオプション設定でOFFに変更: 1秒
9.その後、ADOのデフォルトでOFF: 1秒 ←解決

パラメータは後者の方が処理が少ないのに、妙に遅かったという問題
接続コンポーネントのSET ARITHABORTのデフォルトの違いによって実行プランが分かれるという話を見て、以上のことをごちゃごちゃやってたら直った
でも解決法が逆

開発当時を覚えてないけど、前者は最初に実行プランができたのがADOでの実行で、後者はSSMSだったのかもしれない
つまり
A.先にADOでSET ARITHABORT OFFで実行→SSMSでONで実行→実行プランが分かれる
B.先にSSMSでONで実行→ADOでOFFで実行→ONの実行プランが使われる
C.Bを解除するにはSSMSでOFFで実行(および再コンパイル?)
つまり、散見するノウハウとは逆にSSMSを常にSET ARITHABORT OFFにした状態で開発した方がいいのかもしれない
ADOもSET ANSI_WARNINGSはONなので、SET ARITHABORTがOFFでも0除算エラーは出るし
ちなみに、SQL Serverは2014

466
NAME IS NULL[sage]   投稿日:2017/09/09 20:49:58  ID:???.net(482)
実際酷いのもいるけど、そういうのはむしろORACLE出身だったりするw(内部結合のビューのみでやりきろうとする信じられない低レベルもいる)
SQL Serverは同一ストアド内に制御文と問合せ文が同居できるため工夫の範囲が広く、むしろORACLEよりレベルの高い技術者も多いとも聞く

いずれにせよ前任者はそれを0から構築したわけで(おそらく低予算で)、前任者が悪いんでなく、引き継げない後任者のレベルが低いと考えるべき
前任者のレベルが低いと言うならむしろ引き継ぐだけでなく改善して、処理速度を数十倍〜数百倍に上げてみせるべき

467
NAME IS NULL[]   投稿日:2017/09/13 11:42:20  ID:zN/1K0D+j
Microsoft AzuleのSQL Database(Basic 5DTUs)を使用しています。
image型を含むテーブルのレコード削除に時間がかかります。
1レコードの削除に4秒掛かります。

[テーブル情報]
・プライ
マリーキーはvarchar(32)のカラム1つ
・image型のカラムに4MB程度のデータを格納
・他にvarchar、int、datetime等の型のカラムあり

[削除SQL]
「delete from [dbo].[table_name] where pk_name = '04055d50ae404f7cb85257dd0e5a34cc'」

SQLの応答を早くする方法はないでしょうか?

468
NAME IS NULL[]   投稿日:2017/09/27 13:50:33  ID:WjHJ/OaP.net
復旧モデルについてなのですが、「完全」よりも「単純」の方が余計なことをしない分
処理速度自体は総じて速いという認識で良いのでしょうか?

469
NAME IS NULL[sage]   投稿日:2017/09/27 15:25:41  ID:???.net(482)
>469
差が出るのは最小ログ記録が有効になる操作のみ
https://technet.microsoft.com/ja-jp/library/ms191244(v=sql.105).aspx
コメント1件

470
NAME IS NULL[sage]   投稿日:2017/09/27 19:15:37  ID:???.net(482)
>469
処理速度はほとんど変わらないけど、完全はトランザクションログのメンテナンスを疎かにしてトラブル起きやすいイメージ

471
NAME IS NULL[sage]   投稿日:2017/09/27 22:49:22  ID:???.net(482)
単純でもトランザクションのロールバックはできるわけだから、ログは取ってるんだが
一括ログ可能な操作だと、単純でも一括ログ方式の最少ログしか取ってないのかな

そうじゃないなら、速度的には一括ログが一番早いんじゃないんじゃね
体感できるとは思えんけど

472
NAME IS NULL[sage]   投稿日:2017/09/28 01:01:37  ID:???.net(482)
バッチ処理で大量にデータを
ローディングするようなシステムではそれなりに差が出るよ
BULK INSERTでだいたい20~25%くらい短縮できる

473
NAME IS NULL[sage]   投稿日:2017/09/29 16:50:08  ID:???.net(482)
>473
完全と一括ログの比較じゃなくて
単純より一括ログの方が早いって話?

474
NAME IS NULL[sage]   投稿日:2017/09/29 23:26:37  ID:???.net(482)
>474
単純は一括と同じでしょ
そこは試してないけどマニュアルにはそう書いてるよ

475
NAME IS NULL[sage]   投稿日:2017/10/04 21:53:17  ID:???.net(482)

476
NAME IS NULL[sage]   投稿日:2017/10/05 09:42:17  ID:???.net(482)
まだ2012R2なのに

477
NAME IS NULL[sage]   投稿日:2017/10/05 20:59:09  ID:???.net(482)
まだ2005が現役で動いているのに

478
NAME IS NULL[sage]   投稿日:2017/10/05 21:56:52  ID:???.net(482)
>478
それはヤバくね?

479
NAME IS NULL[sage]   投稿日:2017/10/05 22:00:44  ID:???.net(482)
>479
保守契約切れても何も言ってこないので他社システムに移行したと思ったら、単にケチってただけだったという・・・

480
NAME IS NULL[sage]   投稿日:2017/10/06 22:25:21  ID:???.net(482)
うちの社内システムなんてSqlServer2000+VB6だぞw

481
NAME IS NULL[sage]   投稿日:2017/10/07 14:58:41  ID:???.net(482)
安定稼働してるDBMSを変更する理由がないからなぁ
ORACLEとかサポート切れたら不安しかないけど

482
NAME IS NULL[sage]   投稿日:2017/10/07 17:00:02  ID:???.net(482)
>482
セキュリティって知ってる?
コメント1件

483
NAME IS NULL[]   投稿日:2017/10/07 17:07:32  ID:72uw01jP.net
格好の標的だね
metasploitみたいの使って簡単に攻撃されるよ

484
480[sage]   投稿日:2017/10/07 17:54:07  ID:???.net(482)
>482
そういやいまだにoo4o使ってるシステムもあったw

485
NAME IS NULL[sage]   投稿日:2017/10/07 17:57:44  ID:???.net(482)
>485
うちのこと?

486
NAME IS NULL[sage]   投稿日:2017/10/08 22:37:59  ID:???.net(482)
そもそもDBに不特定多数が直接接続できるシステムがまれだと思うが

487
NAME IS NULL[]   投稿日:2017/10/08 22:42:53  ID:XmeriWwC.net
そもそもそういう発想がセキュリティを理解してない
コメント1件

488
NAME IS NULL[sage]   投稿日:2017/10/08 22:43:14  ID:???.net(482)
いやまあSQL Slammerみたいな例もあるから何とも言えんけど
DBサーバそのものがネットワークに晒されてるような環境とそうじゃない環境じゃ
求められるセキュリティ強度も違うんじゃないかね

489
NAME IS NULL[sage]   投稿日:2017/10/09 06:16:11  ID:???.net(482)
>487
DBに(社内の)不特定多数が直接接続できるのはまれだと思うがDBが入ってるサーバーに(ログインはできないけど)直接接続できるケースは多いと思うぞ

490
NAME IS NULL[sage]   投稿日:2017/10/09 09:17:26  ID:???.net(482)
別サーバーからSSMSからは接続出来ないのに
sqlcmdからは操作出来ちゃうアホな設定のDBがあったなあ

491
NAME IS NULL[sage]   投稿日:2017/10/09 15:57:30  ID:???.net(482)
>491
そんな設定できるんだっけ?
コメント1件

492
NAME IS NULL[sage]   投稿日:2017/10/09 17:49:41  ID:???.net(482)
>491
技とそういう設定にしてるんじゃないか?

493
NAME IS NULL[]   投稿日:2017/10/16 09:56:16  ID:cuhMHRkq.net
SSMSの最新版が出ているようですが、入れると何か良い事ありますか?

494
NAME IS NULL[sage]   投稿日:2017/10/18 23:00:33  ID:???.net(482)
病気が治って彼女が出来て宝くじに当たって出世しまくるなどいい事ずくめ

495
NAME IS NULL[sage]   投稿日:2017/10/21 12:57:32  ID:???.net(482)
Queryのウインドウでは、色付きで分かり易くクエリが表示出来ますよね。
コピペしてワードなどに貼り付けるとその色情報が失われますが、
どうにかして文字だけでなく色もコピペできませんか?

496
NAME IS NULL[sage]   投稿日:2017/10/21 13:11:28  ID:???.net(482)
>496
文法読み取って色表示しているのがクエリエディタの機能だから無理じゃね
コメント2件

497
NAME IS NULL[sage]   投稿日:2017/10/21 14:17:38  ID:???.net(482)
>496
同じ機能を持ったテキストエディタに張り付ければいいじゃん

498
NAME IS NULL[sage]   投稿日:2017/10/21 17:12:43  ID:???.net(482)
例えば社員テーブルに複数の社員のデータを一気に追加する場合に
社員番号をキーとして、
もしテーブルに該当社員がいればUpdate、
いない場合はInsertしたいのですが、
そう言う処理を簡単にやるコマンドはありますか?

499
NAME IS NULL[sage]   投稿日:2017/10/21 17:19:04  ID:???.net(482)

500
NAME IS NULL[]   投稿日:2017/10/21 17:19:21  ID:VrrtTrmz.net

501
NAME IS NULL[sage]   投稿日:2017/10/21 17:57:32  ID:???.net(482)
ありがとうございました。

502
NAME IS NULL[sage]   投稿日:2017/10/21 21:16:04  ID:???.net(482)
>496
「形式を選択して貼り付け」じゃないの?
rich text formatでクリップボードにはコピーされてるはず

503
名無しさん@そうだ選挙に行こう! Go to vote![sage]   投稿日:2017/10/22 07:09:30  ID:???.net(482)
その後、mergeをいろいろ試しています。
社員更新データを#で始まるローカル一時テーブルに入れておいて、
社員テーブルにマージする方針で出来たのですが、そのやり方で良いでしょうか?
調べていると、Temporal tablesと言うのもあるようですが今回のマージ処理に使うと何か良い事ありますか?

504
名無しさん@そうだ選挙に行こう! Go to vote![sage]   投稿日:2017/10/22 13:25:38  ID:???.net(482)
一時テーブルは大量データには向かない
更新頻度が低いならまあ
コメント1件

505
名無しさん@そうだ選挙に行こう! Go to vote![sage]   投稿日:2017/10/22 13:32:29  ID:???.net(482)
>505
sqlserver上級者の人ならどういう手法を使うのか教えて下さい。

506
名無しさん@そうだ選挙に行こう! Go to vote![sage]   投稿日:2017/10/22 13:40:36  ID:???.net(482)
そもそも一旦一時テーブルに入れる必要性が分からんのにどういう手法とか言われても困るだろうよ
コメント1件

507
名無しさん@そうだ選挙に行こう! Go to vote![sage]   投稿日:2017/10/22 13:48:30  ID:???.net(482)
##付きも一時テーブル?
コメント1件

508
名無しさん@そうだ選挙に行こう! Go to vote![sage]   投稿日:2017/10/22 14:58:58  ID:???.net(482)
>504
名前紛らわしいけど
temporary tableとtemporal tableは全く別物

テンポラリテーブルは一時テーブル
テンポラルテーブルは決まった日本語訳ないけど”時間テーブル”みたいな意味
バージョン管理や履歴管理のために使う

509
名無しさん@そうだ選挙に行こう! Go to vote![sage]   投稿日:2017/10/22 15:16:21  ID:???.net(482)
>506
なら目的とか要件を提示しろよ

510
NAME IS NULL[sage]   投稿日:2017/10/22 21:45:55  ID:???.net(482)
>507
テーブルに入れずにmergeできる?

511
NAME IS NULL[sage]   投稿日:2017/10/22 21:48:59  ID:???.net(482)
できる

512
NAME IS NULL[sage]   投稿日:2017/10/22 21:51:05  ID:???.net(482)
>512
ちょっと書いてみてよ。

513
NAME IS NULL[sage]   投稿日:2017/10/22 23:17:00  ID:???.net(482)
>513
マニュアル読めよ
ダメな子だな

514
NAME IS NULL[sage]   投稿日:2017/10/23 12:22:06  ID:???.net(482)
他は知らんがSQLServerのmergeはただの場合分けでupdateとinsert書いてるだけなんだから
updateとinsertに書けることは大体書ける
コメント1件

515
NAME IS NULL[sage]   投稿日:2017/10/23 12:44:14  ID:???.net(482)
>514
あっ、逃げた w

516
NAME IS NULL[sage]   投稿日:2017/10/23 15:13:53  ID:???.net(482)
>516
マニュアルに例も含めてまんま書いてるのにそれすら読めないのか?
仕事でデータベースさわってるなら今すぐ辞めろ
みんなが迷惑する

517
NAME IS NULL[sage]   投稿日:2017/10/23 15:27:52  ID:???.net(482)
505辺りから質問者とは別の人だろ
コメント1件

518
NAME IS NULL[]   投稿日:2017/10/23 15:28:32  ID:CzSV0ugc.net
普通のワークテーブルも作ったらいけない決まりがあるのか?
コメント1件

519
NAME IS NULL[sage]   投稿日:2017/10/23 21:08:58  ID:???.net(482)
>517
具体的に書けないなら黙ってろよ
マジでウザイわ

520
NAME IS NULL[]   投稿日:2017/10/23 21:11:50  ID:mf1jBI9V.net
データの途中経過も分からない作りにしたい人はどういう感覚なんだろうね。

521
NAME IS NULL[sage]   投稿日:2017/10/23 21:58:30  ID:???.net(482)
>518
503の書き方からして同一人物だろ

522
NAME IS NULL[sage]   投稿日:2017/10/29 00:25:48  ID:???.net(482)
SQL Serverの操作に特化したPowerShellがあるって聞いたんだけど
このスレには使ってる人いないのかな?
SSMS使えない環境だとそれなりに威力を発揮するのか知りたかったのだが


523
NAME IS NULL[]   投稿日:2017/10/30 22:53:25  ID:0uDb1bS4.net
壊滅的にcliのセンスがないmsにそんな期待するだけ無駄

524
NAME IS NULL[sage]   投稿日:2017/10/30 23:07:01  ID:???.net(482)
sqlserverでpowershell使っている人いないだろ

複数のsqlserver運用している人がサーバ設定いちいち手作業でするのが面倒くさい場合設定変更のスクリプトをpsで作ったり

あるいはベンダーがクライアントの設定を変えたい時psでスクリプト作ってクライアント送って実行してもらうとかじゃね

525
NAME IS NULL[]   投稿日:2017/10/31 11:37:21  ID:IzoEenp0.net(2)
>525
SQL Serverそのものが、PowerShellのスクリプトを吐くんだが?

526
NAME IS NULL[sage]   投稿日:2017/10/31 12:30:18  ID:???.net(482)
>526
>SQL Serverそのものが、PowerShellのスクリプトを吐く
kwsk
どこでどんなスクリプト吐くんだ
それはクライアントツールじゃなくてSQL Serverそのものが吐いてるのか?

527
NAME IS NULL[]   投稿日:2017/10/31 13:10:45  ID:IzoEenp0.net(2)
>527
management studio

528
NAME IS NULL[sage]   投稿日:2017/10/31 17:24:38  ID:???.net(482)
>528
SSMSがどんなサーバ設定のスクリプト吐くの?

まあそもそもSSMSはクライアントツールであって、それがPSスクリプト吐いたからって、SQL ServerそのものがPSスクリプト吐いてるわけじゃないんだけど

529
NAME IS NULL[sage]   投稿日:2017/10/31 20:58:07  ID:???.net(482)
かなり古い記事だが・・・

【管理効率化への挑戦】PowerShell × SQL Serverが実現する"新しいDB管理"
http://news.mynavi.jp/articles/2010/05/19/ps_u/

530
NAME IS NULL[sage]   投稿日:2017/10/31 22:56:42  ID:???.net(482)
教えてください。

他のジョブの状態によって特定のジョブを実行するかどうかを判定するストアドを書きたいと思います。
ジョブの状態は システムのストアドの msdb.dbo.sp_help_job を利用することで取得できます。
これの特定のカラム(current_execution_status)の値を参照したいので一時テーブルに結果を保存しました。

insert into #temp
exec msdb.dbo.sp_help_job;

これを単体で実行する分には問題ありませんが、自作のストアドの中で実行すると
「INSERT EXEC ステートメントは入れ子にはできません」とエラーが発生します。

無視しても一時テーブルには結果が保存されるのですが、あまり気持ちよくないことと、
自作のストアドをトリガなどの中で実行すると例外を捕捉されてそこで終わってしまいます。
ので、対策を行いたいと思います。

1) 諦める
2) msdb.dbo.sp_help_job の中身を解析して自作する
3) SQL CLR で msdb.dbo.sp_help_job の結果を返すファンクションを作る?

どちらもなんだかな、な気がします。
ネットを見る限りではこのストアドを使用した記事は多そうなので、使用事例も多いはずなのですが解決策が見つかりません。


問題は、内部で insert into を使用しているストアドの結果を insert into するとエラーが発生することなのですが、
こういうケースでは一般にどのように対応するのが定石なのでしょうか。

531
NAME IS NULL[sage]   投稿日:2017/10/31 23:03:51  ID:???.net(482)
>531
ストアドをテーブル関数化すればselect使えるからうまくいくかも
コメント1件

532
NAME IS NULL[sage]   投稿日:2017/10/31 23:48:42  ID:???.net(482)
とりあえずエラートラップして握りつぶせば良いんじゃね
コメント1件

533
NAME IS NULL[sage]   投稿日:2017/10/31 23:57:22  ID:???.net(482)
>531
https://stackoverflow.com/questions/653714/insert-results-of-a-stored-p...

sp_help_jobの結果をテーブルに保存するのは出来るけど
ジョブの依存性管理はSSISかサードパーティのジョブスケジューラ使わないとキツイよ
スケジュール調整のたびにスクリプト自体に手を入れることになるからすぐ破綻する
SQL Serverの泣き所
コメント1件

534
530[sage]   投稿日:2017/11/01 22:25:35  ID:???.net(482)
みなさん、ありがとうございます。

>532
自分のスキルでは出来ませんでした。。

>533
try catch で握りつぶすってことですよね。
それをやると件のエラーが出たところで catch の側に行ってしまうので、結果がテーブルに保存されないのです。

>534
教えていただいた URL の手法で出来ました。
ただ。本番機の設定を変更せねばならないのですが、NG を出されました。
残念。無念。

スケジュール調整の件、覚えておきます。
今回のは幸いに単純なのでなんとかなりそうなのですが。すっきりしないなぁ。

535
NAME IS NULL[sage]   投稿日:2017/11/09 01:07:32  ID:???.net(482)
初心者です。
二つのテーブルが有って、その両者に同じ名前のカラムが有って、それらはそれぞれプライマリキーに設定されています。
その二つのテーブルをマネージメントスタジオでダイアクラムを表示してリレーションシップで結びます。
これで外部キーの設定が出来たと思ったのですが、そうでは無いようでした。
外部キーの設定には、また別の操作が必要でした。
ここで疑問なのですが、二つのテーブルをダイアクラムでリレーションシップの線を結んだだけの状態は、どういう状態なんですか?

536
NAME IS NULL[]   投稿日:2017/11/09 12:30:07  ID:3vuEsp4f.net
見てのとおり、二つのテーブルをダイアクラムでリレーションシップの線を結んだだけの状態、です。

537
NAME IS NULL[sage]   投稿日:2017/11/09 13:09:26  ID:???.net(482)
>537
なるほど。
その場合、リレーションシップを結んでいるかいないかで
それらのテーブルに対するSQLの結果が異なる場合はありますか?
つまり単に線で結んでいるだけなら、SQLには影響しないと考えて良いですか?

538
NAME IS NULL[sage]   投稿日:2017/11/09 13:19:48  ID:???.net(482)
SQL欄表示すりゃ何してるか分かるよ

539
NAME IS NULL[sage]   投稿日:2017/11/10 10:43:05  ID:???.net(482)
SQLServerというよりか、ManagementStudioの話なんですが
ビューの作成や保守が死ぬほど使いづらいです。

ダイアグラムペイン、抽出条件ペイン ともに要らなくてSQLペインのみで作業しようにも
タブ入らないし、保存後に開き直すと勝手に整形されるし・・・

ストアドの作成/保守するときと同じく
CREATE(ALTER) VIEW 〜 っていう画面にできないんでしょうか。

540
NAME IS NULL[sage]   投稿日:2017/11/10 12:10:30  ID:???.net(482)
>540
もう全部コードで書きなよ。

541
NAME IS NULL[sage]   投稿日:2017/11/10 12:56:12  ID:???.net(482)
新規クエリタブ開いてコピペしろ
アホらしいがこれが一番早い

542
NAME IS NULL[sage]   投稿日:2017/11/10 13:18:24  ID:???.net(482)
新規に作る分にはいいんですが
以前に作ったビューの手直しをするとき
SQL文を勝手に整形するのだけでも止められないですかねぇ

543
NAME IS NULL[sage]   投稿日:2017/11/10 13:22:51  ID:???.net(482)
ムリダナ(・x・)

544
NAME IS NULL[sage]   投稿日:2017/11/10 18:53:31  ID:???.net(482)
普通viewなんかexcelの計算式でviewのsql文作ってコピペで張り付けて作るだろう
項目数が100以上あろうがexcelのファイル定義書があれば数分でできるぞ

545
NAME IS NULL[]   投稿日:2017/11/10 18:57:49  ID:+oA2Me4B.net
エクセルにsql作れる関数なんかあったっけ?

546
NAME IS NULL[sage]   投稿日:2017/11/10 19:42:05  ID:???.net(482)
>546
関数はない計算式だよ

例えば、excelのA列にカラム名
B列に別名があったら
C列1行目に=",["&A1&"] AS ["&B1&"]"
と計算式を1つ作り下へコピーすれば
カラム部分のSQL文が簡単にできる
sumしたいカラムとかも計算式を工夫すれば簡単にできる。

547
NAME IS NULL[]   投稿日:2017/11/10 21:18:25  ID:5FHSQ6Bb.net
そういう話ではない。初心者なのかSQLスクリプトを使用する習慣がないようだよ。

548
NAME IS NULL[]   投稿日:2017/11/15 10:18:50  ID:6Q/c6Tcb.net(2)
LEFT JOINする時に、両方のテーブルに例えば共通のidと言うカラムがあると、
select * from T1 left join T2 on T1.id = T2.id;
を実行すると、idのカラムが二個出て来ますよね。
それを一個にするにはどうしたら良いですか?
select * をやめて必要なカラムを書き並べて取り出すしか無いですか?

549
NAME IS NULL[sage]   投稿日:2017/11/15 10:42:03  ID:???.net(482)

550
NAME IS NULL[sage]   投稿日:2017/11/15 10:51:52  ID:???.net(482)
>550
そこを何とかお願いします

551
NAME IS NULL[sage]   投稿日:2017/11/15 11:44:10  ID:???.net(482)
内部結合ならともかく、外部結合だと
その二つは違う場合があるんだが

552
NAME IS NULL[sage]   投稿日:2017/11/15 11:48:01  ID:???.net(482)
だな

553
NAME IS NULL[]   投稿日:2017/11/15 12:19:38  ID:2A3D0a21.net
で?

554
NAME IS NULL[sage]   投稿日:2017/11/15 12:29:05  ID:???.net(482)
>549
select T1.* ,T2.hage1 ,T2.hage2 from T1 left join T2 on T1.id = T2.id;
とか T2だけカラムを羅列する

555
NAME IS NULL[]   投稿日:2017/11/15 12:43:55  ID:LwMIMZHH.net
また自演か
コメント1件

556
NAME IS NULL[]   投稿日:2017/11/15 14:31:55  ID:6Q/c6Tcb.net(2)
>555
>select T1.* ,T2.hage1 ,T2.hage2 from T1 left join T2 on T1.id = T2.id;
ありがとうございました。
ところで、
select T1.* ,T2.*(not hage3) from T1 left join T2 on T1.id = T2.id;
みたいな書き方はSQLでは出来ませんか?

557
NAME IS NULL[sage]   投稿日:2017/11/15 14:34:51  ID:???.net(482)
>557
試してみれば?
コメント1件

558
NAME IS NULL[sage]   投稿日:2017/11/15 22:24:07  ID:???.net(482)
>557
お前は髪が薄い俺を怒らせたから教えない

559
NAME IS NULL[sage]   投稿日:2017/11/16 09:20:05  ID:???.net(482)
>559
少し工夫したら出来ました。

560
NAME IS NULL[]   投稿日:2017/11/16 12:27:44  ID:RhBRQtps.net
ハゲの事を薄毛って言うの本人だけ説
更新情報
・スレッド一覧ページで過去ログのタイトル検索・一覧表示ができるようになりました(2016/1/20)
NGワード登録
登録する
スレッド内検索

データベース板 タイトル検索

このスレッドが人気です(実況系)
NHK総合を常に実況し続けるスレ 140155 会計検査院 (714)NHK実況
世界の何だコレ!?ミステリー〜見逃せない衝撃シーン!謎を直撃3時間SP〜 ★1 (945)フジ実況
くりぃむクイズ ミラクル9 2時間スペシャル★2 (62)テレ朝実況
トコトン掘り下げ隊!生き物にサンキュー!!【カワウソの魅力見せますSP】 ★1 (329)TBS実況
実況 ◆ フジテレビ 84880 (363)フジ実況
くりぃむクイズ ミラクル9 2時間スペシャル★1 (1001)テレ朝実況
実況 ◆ テレビ朝日 49974 揉め事の域を超えた (138)テレ朝実況
実況 ◆ TBSテレビ 28935 (830)TBS実況
このスレッドが人気です(ニュース系)
【相撲】大相撲十一月場所十一日目 白鵬不満の初黒星…立ち合い成立で嘉風一直線 1差2敗に北勝富士・隠岐の海 高安角番脱出 (1001)音楽・芸能ニュース
【相撲】大相撲十一月場所十一日目 白鵬不満の初黒星…立ち合い成立で嘉風一直線 1差2敗に北勝富士・隠岐の海 高安角番脱出★2 (209)音楽・芸能ニュース
【大相撲】貴乃花親方「お断りします」 貴ノ岩への聞き取り調査、協力を拒否 (240)音楽・芸能ニュース
【熊本】乳児抱いて市議(42)が議場に…議長注意、開会遅れる 傍聴規則で禁止★2 (865)ニュー速+
「るろうに剣心」作者を書類送検…女児動画所持容疑★18 (926)ニュー速+
【日馬富士暴行】親方衆から貴乃花の降格など処分を求める声★2 (1004)音楽・芸能ニュース
【相撲】白鵬、勝敗が納得できず異例の土俵の上で抗議 (449)ニュー速
【サッカー/芸能】MALIA. 元Jリーガーのモデルと4度目の結婚を発表 (881)音楽・芸能ニュース
データベース板の人気スレ
Oracle 質問総合スレ13 (228)
SQL質疑応答スレ 17問目 (942)
PostgreSQL Part.11 (404)
MySQL 総合 Part26 (70)
Oracle 質問総合スレ9 (986)
MySQL 総合 Part24 (1010)
Oracle 質問総合スレ10 (1014)
SQL質疑応答スレ 15問目 (1013)
Microsoft SQL Server 総合スレ 11 (561)
はじまりです。 (585)
XML統合スレッド (397)
だれかみずほ銀行のDBを直してやれよ (54)
この板が生き残るために (58)
新しい板の名前を決めるスレ (63)
SQLite Part.10 (650)
♪つっかもうぜ!DB! (122)
RDBMS比較総合スレ 【サーバ】 (131)
OODB - オブジェクト指向データベース (302)
   D       B         (138)
このサイトについて
このサイトは2ちゃんねるからデータを取得し、表示するサービスです。
画像のインライン表示機能について
画像のURLの後ろにある[画像をインライン表示]をクリックすると、URLの下に表示します。
表示される画像は横幅100pxに縮小されていて、クリックすると原寸で表示します。
このサイトの特徴
1)スレッド内検索ができます
2)レス(「>>1」など)のポップアップができます
3)不適切な言葉を含む投稿を表示しません
4)ページ内で画像を直接表示できます
5)2ch他スレッドへのリンクはタイトル・板名つきでリンクします
6)すっきりとしたデザインで表示します
7)最新スレや前スレをチェック・一覧表示します
8)NGワード機能の搭載でイヤな言葉が目に入りません
9)荒らしを自動チェックします
10)スレッド内・同一IDの書き込みだけ表示できます
11)レスの返事をレスされた発言の下に表示する「まとめビュー」が利用できます
12)シリーズ化したスレッドの一覧を表示します
13)最新のスレッドがある場合はお知らせします
削除について
こちらをご覧ください
機能要望について
現在機能要望受付中です。
問い合わせについて
こちらのページからどうぞ
広告


首都圏の方、ソフトバンク光オススメですよ


このサイトは2ch.scからデータを取得・表示しています。削除などについてはこちらをご覧ください。 アクセスモード:差分取得 - 新着書き込みなし(304)