2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

Microsoft SQL Server 総合スレ 11

1 :NAME IS NULL:2016/05/29(日) 16:50:08.13 ID:dqKJQypQ.net
Microsoft SQL Server (Transact-SQL) の総合スレッドです。

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

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

2 :NAME IS NULL:2016/05/29(日) 17:26:44.26 ID:???.net
・過去スレ

Microsoft SQL Server 総合スレ 10
http://echo.2ch.net/test/read.cgi/db/1385363382/

Microsoft SQL Server 総合スレ 10(レス数6で落ち)
http://toro.2ch.net/test/read.cgi/db/1371907307/

Microsoft SQL Server 総合スレ 9
http://toro.2ch.net/test/read.cgi/db/1310645522/

Microsoft SQL Server 総合スレ 8
http://hibari.2ch.net/test/read.cgi/db/1259409678/

Microsoft SQL Server 総合スレ 7
http://pc11.2ch.net/test/read.cgi/db/1231665917/

Microsoft SQL Server 総合スレ 6
http://pc11.2ch.net/test/read.cgi/db/1207377114/

Microsoft SQL Server 総合スレ 5
http://pc11.2ch.net/test/read.cgi/db/1175091880/

Microsoft SQL Server 総合スレ 4
http://pc11.2ch.net/test/read.cgi/db/1142315583/

Microsoft SQL Server 総合スレ3【MS SQL】
http://pc11.2ch.net/test/read.cgi/db/1123981539/

MS SQL Server 総合スレ2
http://pc11.2ch.net/test/read.cgi/db/1093012583/

3 :NAME IS NULL:2016/05/29(日) 23:40:39.48 ID:???.net
おつ

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

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

6 :NAME IS NULL:2016/06/02(木) 14:04:22.59 ID:???.net
せっかくなので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:2016/06/03(金) 09:13:02.76 ID:???.net
SQL Server Management Studioは間に合わなかったの?
preview版(英語)をダウンロードするようになってるんだが

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

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

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

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

11 :NAME IS NULL:2016/06/04(土) 16:33:35.30 ID:???.net
>>10
バックアップデータがネットワークを介さずにクライアント端末に瞬間移動する機能を期待しているの?

12 :NAME IS NULL:2016/06/04(土) 16:36:44.54 ID:???.net
bcpにフォーマットファイル作成するオプションがあるが

13 :NAME IS NULL:2016/06/04(土) 17:21:12.34 ID:???.net
>>11
瞬間移動?
mysqldump的なことです

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

って話じゃないの?

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

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

CIFS使うことがいやな理由は?

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

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

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

19 :NAME IS NULL:2016/06/05(日) 01:44:06.11 ID:???.net
>>18
共有の設定するのはクライアント(端末)側でしょ?

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

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

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

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

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

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

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

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

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

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

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

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

で、終了でしょ

29 :NAME IS NULL:2016/06/06(月) 10:14:44.31 ID:???.net
>>28
yes

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

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

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

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

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

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

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

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

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

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

35 :NAME IS NULL:2016/06/11(土) 22:24:07.06 ID:???.net
windows認証のログイン、ユーザーがだめじゃ?

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

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

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

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

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

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

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

41 :NAME IS NULL:2016/06/14(火) 11:28:04.69 ID:???.net
効果ありそうだけどSSDの損耗が早くてアッと言われそう

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

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

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

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

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

45 :NAME IS NULL:2016/06/14(火) 18:01:50.33 ID:???.net
>>41
いつの時代だよ

46 :NAME IS NULL:2016/06/14(火) 18:09:47.00 ID:???.net
>>41
http://xn--ssd-j73b1ca4z.com/ssd_jumyou/

47 :40:2016/06/14(火) 19:47:31.92 ID:nfKm+RL8.net
みなさん、ありがとん!

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

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


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

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

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

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

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

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

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

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

54 :NAME IS NULL:2016/06/24(金) 19:05:09.27 ID:???.net
言語と文字コードは別物なんだが

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

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

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

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

57 :NAME IS NULL:2016/06/28(火) 20:13:35.33 ID:???.net
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

58 :NAME IS NULL:2016/06/28(火) 21:55:27.98 ID:???.net
MSDN見てみたらWindows7が要件から抜けてるぞ
ms143506

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

60 :NAME IS NULL:2016/06/29(水) 01:00:35.80 ID:???.net
>>57
速そうなマシンだな

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

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

62 :NAME IS NULL:2016/07/14(木) 19:54:43.49 ID:???.net
エラーログやOSのイベントログぐらい確認できないのかよ

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

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

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

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

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

67 :NAME IS NULL:2016/07/19(火) 21:07:50.03 ID:???.net
UNDOが何の事を指してるか分かりませんが、できません
バックアップから回復して下さい

68 :NAME IS NULL:2016/07/19(火) 21:53:59.19 ID:???.net
>>67
バックアップはどこにある?
自動バックアップがあるの?

69 :NAME IS NULL:2016/07/19(火) 22:54:30.26 ID:???.net
自分でバックアップを取ってないなら諦めてください

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

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

72 :NAME IS NULL:2016/07/20(水) 05:46:49.52 ID:???.net
>>完全復旧モデル
何よそれ。

73 :NAME IS NULL:2016/07/27(水) 08:28:47.24 ID:???.net
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.39 ID:yq4MDUYW.net
sqlserverからaccessのデータへ接続したいのですが
以下のページを参考にすると

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

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

75 :NAME IS NULL:2016/07/30(土) 13:27:13.61 ID:???.net
SQL鯖がx64だったら無理と思う

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

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

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

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

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

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

81 :NAME IS NULL:2016/09/06(火) 09:56:12.52 ID:???.net
SSMS2016でATOKが使えないんだが・・・
Win7x86

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

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

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

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

84 :NAME IS NULL:2016/09/09(金) 10:59:36.31 ID:???.net
>>81
ssmsでatokが使えないってどういう意味よ?

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

86 :NAME IS NULL:2016/10/07(金) 21:57:05.54 ID:???.net
>>85
まず読み込む件数によると思うが

87 :NAME IS NULL:2016/10/08(土) 02:21:43.32 ID:???.net
>>86
数件〜数万件くらいです。状況によって変わります。

88 :NAME IS NULL:2016/10/08(土) 05:22:55.16 ID:???.net
>>87
上限が数万なら一気読みでいいかと
将来的にもっと増えるかもならループかな

89 :NAME IS NULL:2016/10/08(土) 06:31:28.05 ID:???.net
>>88
数が増えるとループのほうが良いのですか?
なぜですか?

90 :NAME IS NULL:2016/10/19(水) 17:17:06.51 ID:???.net
MySQLのREPLACE INTOに相当するコマンドはありますか?

91 :NAME IS NULL:2016/10/21(金) 18:43:10.14 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 パッケージで良いものかわからなかったもので。

92 :NAME IS NULL:2016/10/21(金) 19:31:32.02 ID:???.net
>>91
ベンダーなりメーカーなりに聞けよ

93 :NAME IS NULL:2016/10/22(土) 10:43:18.11 ID:???.net
>>90
無い。mysqlの方が進んでいる

94 :NAME IS NULL:2016/10/23(日) 02:01:53.42 ID:???.net
mergeで全項目上書きでいいんじゃね

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

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

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

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

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

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

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

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

98 :NAME IS NULL:2016/10/24(月) 03:31:07.95 ID:???.net
>>97
全く同一の内容だと言ってるだろ頭悪いな

99 :NAME IS NULL:2016/10/24(月) 03:33:38.93 ID:???.net
>>97
しかも自分で直ったと書いてあるだろ馬鹿

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

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

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

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

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

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

104 :NAME IS NULL:2016/10/24(月) 07:59:00.21 ID:???.net
文字列型のカラムで
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文を教えてください。

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

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

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

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

107 :NAME IS NULL:2016/10/24(月) 21:24:42.51 ID:???.net
>>106
>104
日付を文字列で保管するとどういうデメリットがありますか?

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

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

110 :NAME IS NULL:2016/10/24(月) 21:42:26.11 ID:???.net
>>109
なるほど。
でも日付型は1750年以降くらいしか保持できないそうですが、それで
問題は出ないのですか?

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

>>110
日付型って言っても色々あるから
dateかdatetime2使え

112 :NAME IS NULL:2016/10/24(月) 21:52:59.93 ID:???.net
>>111
>日付計算
このデータに関しては日付の計算をする予定はありません。
>dateかdatetime2使え
紀元前を扱うにはどうするのでしょうか?

113 :NAME IS NULL:2016/10/24(月) 21:53:23.57 ID:???.net
>>110
要件定義次第
だがまずない

114 :NAME IS NULL:2016/10/24(月) 21:54:49.77 ID:???.net
>>112
後はどういった要件があるのかな?

115 :NAME IS NULL:2016/10/24(月) 22:00:16.76 ID:???.net
>>114
ありません。

116 :NAME IS NULL:2016/10/24(月) 22:07:49.71 ID:???.net
>>115
どういった目的で紀元前を扱いたい?
扱うとは具体的にどういった処理をする?

117 :NAME IS NULL:2016/10/24(月) 22:31:02.56 ID:???.net
>>116
紀元前を扱う目的はその年代の年月日をデータで保管したいから。
日付の計算はしない。
それだけ。

118 :NAME IS NULL:2016/10/24(月) 22:34:19.37 ID:???.net
>>117
なら文字型が無難。

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

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

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

122 :NAME IS NULL:2016/10/28(金) 08:12:24.68 ID:???.net
なんとか、再インストールできやした。あざした。

123 :NAME IS NULL:2016/10/31(月) 14:07:37.12 ID:???.net
sql serverとmysqlとで同じテーブルを同期させるなんて出来ますか?
sql serverの本データをmysqlにコピーする感じで。

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

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

126 :NAME IS NULL:2016/11/04(金) 05:38:06.52 ID:???.net
リンクサーバ定義すれば、SQLServerからはローカルテーブルとほぼ同じように扱える

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

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

129 :NAME IS NULL:2016/11/07(月) 23:26:03.19 ID:eRnTZUaL.net
>>128
dboはスキーマではなくユーザー。

Oracleのようだと勘違いしてる?

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

131 :sage:2016/11/08(火) 19:07:02.08 ID:6hEpw8np.net
https://www.youtube.com/watch?v=tY-xyCbzdqY

https://www.youtube.com/watch?v=NJYs5GTmdcg

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

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

133 :NAME IS NULL:2016/11/09(水) 00:28:18.37 ID:???.net
>>129-130
> dboはスキーマではなくユーザー。
違うよ
https://msdn.microsoft.com/ja-jp/library/bb669061(v=vs.110).aspx

134 :NAME IS NULL:2016/11/09(水) 09:53:38.05 ID:???.net
>>132
>スキーマは使い分ける必要があればそうすればいいし
スキーマを分けるのは例えばどんな場合なん?

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

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

136 :NAME IS NULL:2016/11/09(水) 22:45:58.11 ID:9dB+mYx1.net
>>133
本来はユーザーで所有者なんだよ。

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

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

137 :NAME IS NULL:2016/11/09(水) 23:03:36.67 ID:???.net
そんなオレオレ定義を開陳されても困る

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

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

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

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

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

140 :NAME IS NULL:2016/11/11(金) 07:20:29.10 ID:???.net
スキーマを正しく説明出来る人はここにはいないんですか?

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

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

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

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

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

143 :NAME IS NULL:2016/11/11(金) 19:49:22.67 ID:???.net
>>140
>>133 に URL 書いてあるのになぜ読まん

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

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

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

147 :NAME IS NULL:2016/11/14(月) 19:09:41.20 ID:???.net
Expressは使用メモリ1GBに制限されてなかったかな…
もちろん余裕があるに越したことはないけれども

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

149 :NAME IS NULL:2016/11/15(火) 23:39:28.97 ID:???.net
>>147>>148
レスありがとうございました。
余裕をみて4GBくらいでVPS契約してみます。

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

151 :NAME IS NULL:2016/11/16(水) 12:40:26.64 ID:???.net
質問です。

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

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

分かる方いらした教えてください。

152 :NAME IS NULL:2016/11/16(水) 20:11:15.42 ID:???.net
>>151
ディスクが溢れたとかかも
まずはイベントログを見た方がいいと思う
https://blogs.msdn.microsoft.com/karthick_pk/2010/11/25/the-database-model-is-marked-restoring-and-is-in-a-state-that-does-not-allow-recovery-to-be-run-could-not-create-tempdb-you-may-not-have-enough-disk-space-available-free-additional-disk-space-by-d/

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

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

エスパーの方教えてください

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

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

155 :NAME IS NULL:2016/11/18(金) 07:56:06.38 ID:mgIvH7zu.net
>>153
SELECTするときも時間がかかってる?

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

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

157 :NAME IS NULL:2016/11/18(金) 08:05:35.18 ID:???.net
リレーション絡んでると無理だけど

158 :NAME IS NULL:2016/11/18(金) 08:14:49.18 ID:mgIvH7zu.net
>>156
そんな初心者みたいなアドバイスするなよw

159 :NAME IS NULL:2016/11/18(金) 11:56:10.77 ID:???.net
>>158
待ってましたー、w

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

161 :NAME IS NULL:2016/11/18(金) 13:09:12.94 ID:mgIvH7zu.net
初心者スレかよw

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

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

それでも平気で一晩とかかかるが

164 :NAME IS NULL:2016/11/18(金) 13:41:35.56 ID:mgIvH7zu.net
>>163
おまえの環境なんか知らねえよw

165 :NAME IS NULL:2016/11/18(金) 13:48:32.20 ID:???.net
じゃ具体的な打開策を示してみろよ

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

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

167 :NAME IS NULL:2016/11/19(土) 10:21:04.31 ID:???.net
具体的には何も言えないチキン ⇒ ID:mgIvH7zu

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

169 :NAME IS NULL:2016/11/19(土) 11:41:15.25 ID:???.net
色々あるもんだね

170 :NAME IS NULL:2016/11/19(土) 12:44:15.23 ID:QTm9YLIS.net
>>167
質問した本人がいないからな。

171 :NAME IS NULL:2016/11/19(土) 15:34:55.16 ID:???.net
truncate table に where 書けたら解決なのにな
それか、delete に「Rollback不能で構いませんから速くやってください」って with 句を準備してくれるか

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

173 :NAME IS NULL:2016/11/19(土) 22:46:43.49 ID:???.net
>>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変換くらいしか思い付かない

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

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

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

176 :NAME IS NULL:2016/11/23(水) 10:58:15.12 ID:???.net
>>163
1億レコードって物凄い大きなDBですか?
どんなシステムなのか見当もつかない

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

178 :NAME IS NULL:2016/11/23(水) 20:11:21.26 ID:???.net
>>176
全然普通じゃん
どんな仕事してん?

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

180 :NAME IS NULL:2016/11/24(木) 00:03:09.24 ID:nZ9WujKe.net
スカート捲ってもらって股間の香り嗅ぎながらチンポ握ると五分で発射寸前だよ。
二十歳ぐらいの女の子のナマパンツに顔を埋めて拭き取り漏れのお尻の穴のリアルな香りを嗅いで好き放題シコる。
この状況で一時間持つ意味が分からん。

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

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

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

いったい何が原因なのでしょうか。

182 :NAME IS NULL:2016/11/28(月) 14:34:48.86 ID:???.net
解決しました。

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

183 :NAME IS NULL:2016/11/28(月) 14:56:49.87 ID:???.net
ちょっと違ってました。

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

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

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

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

185 :NAME IS NULL:2016/11/28(月) 15:54:51.04 ID:???.net
テーブル変数を使ってたんですが、作業表(#〜)にしても一緒でした。
中身一緒かもしれませんが。

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

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

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

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

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

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

190 :NAME IS NULL:2016/11/28(月) 17:12:45.91 ID:???.net
以降は、君のブログで。

191 :NAME IS NULL:2016/11/28(月) 17:20:38.36 ID:???.net
SET NOCOUNT ON してる?
ほんとにSET ARITHABORT の問題なら、ストアドの中でSET ARITHABORT ON すれば良い

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

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

http://www.sommarskog.se/query-plan-mysteries.html
が詳しいようです。

193 :NAME IS NULL:2016/11/28(月) 17:32:01.75 ID:???.net
いま注目してるストアドを相手にしたときは

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

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

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

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

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

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

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

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

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

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

199 :NAME IS NULL:2016/12/02(金) 17:00:30.97 ID:???.net
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:2016/12/02(金) 17:54:06.99 ID:???.net
update 表名
set col1 = 'Aさん',col3 = 'データ1'

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

201 :NAME IS NULL:2016/12/02(金) 18:25:05.90 ID:???.net
>>196
つか、そもそもそのテーブルのPKがおかしい。

202 :NAME IS NULL:2016/12/03(土) 09:08:53.55 ID:???.net
>>201
複合主キーじゃあないの?
どのあたりがおかしい?

203 :NAME IS NULL:2016/12/03(土) 18:56:22.41 ID:???.net
>>202
普通 Identity だけにしないか?
複合にする意図がわからん

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

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

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

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

207 :NAME IS NULL:2016/12/04(日) 10:45:59.24 ID:5zb5esCr.net
insertのつもりでupdateしてしまう手法のことか?

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

209 :NAME IS NULL:2016/12/14(水) 16:16:48.82 ID:???.net
TBS

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

211 :NAME IS NULL:2016/12/17(土) 16:44:00.77 ID:???.net
linux版はvNext相当だっけ

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

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

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

215 :NAME IS NULL:2017/02/01(水) 11:41:06.33 ID:???.net
入門書としておすすめの書籍ある?

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

217 :NAME IS NULL:2017/02/04(土) 11:55:40.69 ID:nkqeAkqN.net
https://www.youtube.com/watch?v=quIHgwuF6r4&sns=em

218 :NAME IS NULL:2017/02/04(土) 19:51:14.97 ID:???.net
sql サーバーってマルチコアcpuで実行すると並列で処理されてレスポンス速くなったりするの?

219 :NAME IS NULL:2017/02/04(土) 20:08:45.52 ID:???.net
>>218
ならないよ。

220 :NAME IS NULL:2017/02/04(土) 20:09:35.90 ID:???.net
>>218
なるよ

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

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

223 :NAME IS NULL:2017/02/05(日) 07:46:27.65 ID:???.net
>>222
なんにもしなきゃそんなもんでしょ

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

225 :NAME IS NULL:2017/02/05(日) 08:32:05.47 ID:???.net
>>224
インデックスは張ってるのか?

226 :NAME IS NULL:2017/02/05(日) 08:38:28.48 ID:???.net
>>224
しなけりゃ何秒かかるのよ?

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

228 :NAME IS NULL:2017/02/05(日) 10:06:55.05 ID:???.net
>>227
.NETスレ行け

229 :NAME IS NULL:2017/02/05(日) 18:56:51.75 ID:???.net
行かない

230 :NAME IS NULL:2017/02/06(月) 23:59:23.88 ID:???.net
>>227
このスレでの質問じゃないね

231 :NAME IS NULL:2017/02/07(火) 11:16:26.90 ID:???.net
sql serverとsql server express は速さは違うのでしょうか?

232 :NAME IS NULL:2017/02/07(火) 12:31:51.30 ID:???.net
>>231
全然よ

233 :NAME IS NULL:2017/02/07(火) 12:39:38.10 ID:???.net
>>232
何倍くらい?

234 :NAME IS NULL:2017/02/07(火) 12:43:35.56 ID:???.net
>>233
0.8〜1.19倍くらい

235 :NAME IS NULL:2017/02/07(火) 12:57:17.68 ID:???.net
>>231
条件による
使えるメモリーとかコア数違うから

236 :NAME IS NULL:2017/02/07(火) 13:58:59.62 ID:???.net
>>234
誰が測定したのですか?

237 :NAME IS NULL:2017/02/07(火) 18:00:30.07 ID:???.net
なんだこのアホなやりとりは

238 :NAME IS NULL:2017/02/07(火) 19:31:44.18 ID:???.net
レス古事記だろ
スルーでいいよ

239 :NAME IS NULL:2017/02/21(火) 14:26:23.03 ID:???.net
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みたいな () に複数項目が書けるもので、もうちょっとコンフリクト起きにくいなにかないですか。

240 :NAME IS NULL:2017/02/21(火) 14:48:31.75 ID:???.net
>>239
コンフリクトの使い方間違ってるんじゃないか?

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

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

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

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

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

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

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

初歩的なことだと思うのですがよろしくお願いします。

244 :NAME IS NULL:2017/02/22(水) 21:55:11.78 ID:???.net
>>243
とりあえずやってみると良いよ
費用かからないし
しかし今時こんなが環境あるんかな
20年くらい昔によくあったやつ

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

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

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

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

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

248 :NAME IS NULL:2017/02/23(木) 18:48:24.75 ID:???.net
>>247
助言有り難うございます。
accdbなのでそのまま使えそうです。

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

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

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

250 :NAME IS NULL:2017/02/23(木) 20:51:17.86 ID:/7OWtulZ.net
思わせぶりな※

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

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

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

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

254 :NAME IS NULL:2017/02/24(金) 06:17:19.75 ID:???.net
>>252
このロジックだったら全件更新だよ

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

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

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

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

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

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

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

258 :NAME IS NULL:2017/02/25(土) 03:47:54.77 ID:???.net
やってみてそう感じたなら恩恵はないんだろうね

259 :NAME IS NULL:2017/02/25(土) 11:50:18.21 ID:???.net
>>257
SQL文の実行はAccessではなくSQL Serverだよ

>>254で改善できると思われ

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

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

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

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

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

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

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

265 :NAME IS NULL:2017/02/27(月) 08:15:54.58 ID:???.net
自分で試せる環境はないのかね。

266 :NAME IS NULL:2017/03/03(金) 00:00:11.98 ID:???.net
VB6からSqlServerに接続する時はoo4oとかいうのを使うんだっけ?

267 :NAME IS NULL:2017/03/03(金) 04:44:09.46 ID:???.net
それオラクル

268 :266:2017/03/03(金) 06:07:27.23 ID:???.net
>>267
そうだった、オラクルだったw

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

269 :NAME IS NULL:2017/03/04(土) 17:12:25.44 ID:???.net
sql server使う人は言語はphp?

270 :NAME IS NULL:2017/03/04(土) 17:31:18.72 ID:???.net
>>269
なぜそう思った

271 :NAME IS NULL:2017/03/05(日) 06:30:37.18 ID:???.net
sql server使う人は言語はC#?

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

273 :NAME IS NULL:2017/03/05(日) 11:41:36.54 ID:???.net
おれは C#,C++, PowerShell 辺りが多い

274 :NAME IS NULL:2017/03/05(日) 11:53:02.37 ID:???.net
Javaとか

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

276 :NAME IS NULL:2017/03/05(日) 18:03:30.27 ID:???.net
俺はexcelvba

277 :NAME IS NULL:2017/03/05(日) 20:06:10.87 ID:???.net
>>276
vbaで出来るの?

278 :NAME IS NULL:2017/03/05(日) 20:28:50.09 ID:???.net
>>277
vba sql-server でググれ

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

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

281 :NAME IS NULL:2017/03/08(水) 14:25:17.42 ID:???.net
現在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

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

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

283 :resumi:2017/03/08(水) 18:04:56.55 ID:hjh5f++s.net
https://goo.gl/l3fSYl
これ本当??
普通にショックだね。。

284 :NAME IS NULL:2017/03/08(水) 20:59:53.54 ID:???.net
>>281
暗黙の型変換かなあ

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

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

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

286 :NAME IS NULL:2017/03/09(木) 10:10:24.96 ID:???.net
NVARCHAR内のNULL文字(NCHAR(0))を検索または置換する方法はありますか?
LIKE '%'+NCHAR(0)+'%'
REPLACE(name, NCHAR(0), '')
等を試してみましたが、だめでした。

287 :NAME IS NULL:2017/03/09(木) 13:06:16.75 ID:???.net
>>286
正しいやり方かどうかはわからんが
select * from table where name like N'%' + nchar(0) + N'%' collate JAPANESE_BIN
で検索できたよ

288 :286:2017/03/09(木) 17:08:09.99 ID:???.net
>>287
できました
ありがと

289 :NAME IS NULL:2017/03/09(木) 17:13:43.94 ID:???.net
SQLサーバっていまだにNとかncharとかcollateとかいるのか

290 :NAME IS NULL:2017/03/09(木) 22:25:14.46 ID:???.net
>>289
ncharは他のdbでもいるだろ

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

292 :NAME IS NULL:2017/03/28(火) 10:32:41.51 ID:???.net
1回目もクエリだけやたら時間がかかるっていう経験ないですか?
2回目は速い
改善する方法あったら教えてください

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

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

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

294 :NAME IS NULL:2017/03/28(火) 14:33:14.80 ID:???.net
DBサイズくらいのメモリ積め

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

296 :NAME IS NULL:2017/03/28(火) 16:34:29.46 ID:???.net
ストアドにしてコンパイル済みにする手もあるが

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

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

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

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

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

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

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

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

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

304 :NAME IS NULL:2017/04/04(火) 11:23:43.06 ID:???.net
ストアドストアド言ってる人は、90年代に生きてるんですかね

305 :NAME IS NULL:2017/04/04(火) 12:18:00.83 ID:???.net
今どきはストアド使わんのがトレンディなんか?

306 :NAME IS NULL:2017/04/04(火) 13:22:41.59 ID:???.net
>>305
実行時間短縮が目的でストアドを使う奴はいないだろうね

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

308 :NAME IS NULL:2017/04/04(火) 19:25:55.84 ID:???.net
>>306
関係ない事を言うのに俺にアンカつけんのやめてもらえんかな
俺までバカに見えるやろが

309 :NAME IS NULL:2017/04/05(水) 10:42:22.90 ID:???.net
>>308
>>305がバカな発言だと思ってないんだw

310 :NAME IS NULL:2017/04/05(水) 12:26:42.39 ID:???.net
>>309
だからなんだよ?
お前がそう思ってる事が今なんか関係あるのか?
バカしかいないのかここは

311 :NAME IS NULL:2017/04/05(水) 13:18:00.59 ID:???.net
>>310
> だからなんだよ?
>>305みたいなマヌケなレスするなってことだよ
そんなこともわからんバカなの?

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

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

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

315 :NAME IS NULL:2017/04/05(水) 21:58:10.55 ID:???.net
>>313
SQLSeverと親和性高いC#がEF推しているのを見ると不要論が優勢でも不思議じゃないな

316 :NAME IS NULL:2017/04/06(木) 10:39:37.36 ID:???.net
>>315
EFとストアドに何の関係が?

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

318 :NAME IS NULL:2017/04/06(木) 13:19:00.97 ID:???.net
そんな思想があったらRailsなんぞ流行らんわ
何処の時空の話だよ

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

320 :NAME IS NULL:2017/04/06(木) 14:11:49.32 ID:???.net
そんな話じゃねえよ
EFが何しにPOCOなんての売りにしてたかって話だ

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

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

322 :NAME IS NULL:2017/04/06(木) 15:53:14.04 ID:???.net
DB側でスキーマ書いて処理も書いてってのが古い思想という話をしている
開発スピードが無闇に上がってスキーマ変更朝令暮改でって今時はな

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

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

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

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

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

326 :NAME IS NULL:2017/04/06(木) 18:53:09.88 ID:???.net
DB側でごりごり書いたストアドって、InMemoryでUnitTestできるのかい?

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

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

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

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

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

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

329 :NAME IS NULL:2017/04/09(日) 16:01:53.60 ID:???.net
>>328
ストアドって何よ?

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

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

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

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

333 :NAME IS NULL:2017/04/10(月) 15:17:23.17 ID:???.net
>>330
常に1スレッドからしか触られない前提なら別にヤバくない

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

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

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

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

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

337 :NAME IS NULL:2017/04/11(火) 19:12:06.12 ID:???.net
Hyperーvのレプリカサーバーに入っているSQLSERVERもライセンスって必要ですか?

338 :NAME IS NULL:2017/04/11(火) 19:42:30.31 ID:???.net
>>337
OSのライセンスが2つ必要ならそりゃSQLServerのライセンスも同じじゃね

339 :NAME IS NULL:2017/04/11(火) 20:03:02.82 ID:???.net
>>338
ありがとうございました。
不要と理解しました

340 :NAME IS NULL:2017/04/12(水) 01:11:00.92 ID:???.net
>>333,335
スレッド一つでも複数コネクション持ってゴニョゴニョすると問題が出る気がする

341 :NAME IS NULL:2017/04/12(水) 03:42:34.42 ID:???.net
>>340
さすがにそれはない
まさかCOMMITせん訳でもあるまい?

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

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

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

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

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

346 :NAME IS NULL:2017/04/13(木) 17:00:25.60 ID:???.net
>>344
シーケンスなかった時に、連番とるためにやったことあるわ

347 :NAME IS NULL:2017/04/13(木) 19:40:53.62 ID:???.net
>>346
俺もよくやるよ。>>344が無知なだけ

348 :NAME IS NULL:2017/04/13(木) 19:43:06.41 ID:???.net
>>344
晒し

349 :NAME IS NULL:2017/04/13(木) 19:49:56.90 ID:???.net
>>347-348
まさかと思うが入れ子トランザクションでドヤってんじゃあるまいな…?

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

351 :NAME IS NULL:2017/04/13(木) 20:15:54.97 ID:???.net
>>350
連番取るのにトランザクション外からやるっての?
ますますもって意味わからんぞ

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

353 :NAME IS NULL:2017/04/13(木) 21:43:45.73 ID:???.net
>>350
よーく考えよう

354 :NAME IS NULL:2017/04/14(金) 10:56:34.23 ID:???.net
>>352
今となっては、バッドノウハウ

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

356 :NAME IS NULL:2017/04/14(金) 15:02:31.19 ID:???.net
>>352
それフツーに不整合出ねえ?

357 :NAME IS NULL:2017/04/14(金) 15:57:02.04 ID:???.net
>>352
出ませんが、何か?

358 :NAME IS NULL:2017/04/14(金) 20:02:12.33 ID:???.net
>>354
今時の代替手段はどんなの?

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

359 :NAME IS NULL:2017/04/14(金) 20:21:40.16 ID:???.net
>>358
シーケンス

360 :NAME IS NULL:2017/04/14(金) 20:31:11.74 ID:???.net
>>358
> 今時の代替手段はどんなの?
シーケンスだろ

361 :NAME IS NULL:2017/04/14(金) 21:37:16.31 ID:???.net
シーケンス互換性ないじゃん

362 :NAME IS NULL:2017/04/15(土) 14:02:49.32 ID:???.net
>>361
シーケンスと何が互換性ないって?

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

364 :NAME IS NULL:2017/04/17(月) 00:45:52.25 ID:???.net
今の流れでそれがどうだと?

365 :NAME IS NULL:2017/04/17(月) 13:04:14.32 ID:???.net
シーケンスって…なに?

366 :NAME IS NULL:2017/04/17(月) 14:40:37.19 ID:???.net
>>365
つ google

367 :NAME IS NULL:2017/04/17(月) 16:51:13.99 ID:???.net
何でこの程度のことググらないのか、毎度ながら不思議

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

369 :NAME IS NULL:2017/04/18(火) 13:06:43.50 ID:???.net
教えてくれる奴が来るまで待つとか馬鹿でしょ

370 :NAME IS NULL:2017/04/18(火) 19:21:58.59 ID:???.net
いや待てよ勝手に理解したつもりになるな

371 :ich1:2017/04/21(金) 16:41:35.14 ID:R/eXxgbc.net
https://goo.gl/q9Ml0S
これは嘘でしょ?本当だったら落ち込むわ。。

372 :NAME IS NULL:2017/04/22(土) 01:49:55.34 ID:???.net
vNext = 2017
https://blogs.technet.microsoft.com/dataplatforminsider/2017/04/19/sql-server-2017-community-technology-preview-2-0-now-available/

ようやくCTP 2
RTMはいつだー

373 :NAME IS NULL:2017/04/25(火) 22:38:34.87 ID:???.net
最近DB触り始めたんですが、チューニング的なことをする必要が出てきてT-SQLを知りたいです
例:)http://outofmem.tumblr.com/post/77053433681/sql-serverdb%E5%86%85%E3%81%A7%E7%99%BA%E8%A1%8C%E3%81%95%E3%82%8C%E3%81%9Fsql%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B
↑こんなふうにシステムビューとか含めてリファレンス的に読める本があれば教えて欲しいんですがどうですか

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

374 :NAME IS NULL:2017/04/25(火) 23:17:16.27 ID:???.net
>>332
>「ストアド」 = 「DBに格納できる一連の手続き」

いかにもシステム屋さんな定義だなw

375 :NAME IS NULL:2017/04/26(水) 12:56:31.64 ID:???.net
>>374
では、君の素晴らしい定義を教えてもらおうかな

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

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

378 :NAME IS NULL:2017/04/29(土) 00:21:18.65 ID:???.net
まだほとぽりは冷めてないぜ>>374

379 :374:2017/04/29(土) 01:07:23.45 ID:???.net
>>375-378
おいやめろw
俺はこの業界にどっぷりのただのIT土方だよ。
定義があまりにもプロっぽい(同業っぽい)からちょっとつついてみただけだw

380 :NAME IS NULL:2017/04/29(土) 09:51:21.13 ID:???.net
すみません。質問させてください。
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.28 ID:SlYPafLa.net
create or replace
じゃ不満なのか?

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

383 :NAME IS NULL:2017/05/07(日) 03:32:11.96 ID:???.net
物凄く初歩的で申し訳ないのですが、SQL Server2008をSQL Server2014へ
アップグレードでインストールした後、不要な2008を消したいんですが
普通にアンインストールでいいものなんでしょうか。

384 :NAME IS NULL:2017/05/07(日) 06:15:58.60 ID:???.net
>>383
たぶん良いんじゃないか。
結果を教えてくれ。

385 :NAME IS NULL:2017/05/10(水) 00:57:31.27 ID:???.net
>>383ではないが
2008R2 Express SP3を2016 Expressにして、2008をアンインストールしてみた
軽く動かした感じでは動いてるっぽいけど
2008のアンインストールが色々手間だった

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

386 :NAME IS NULL:2017/05/10(水) 21:21:25.38 ID:???.net
俺なら2008アンインストール、2016インストールするけど

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

388 :NAME IS NULL:2017/05/11(木) 19:51:28.91 ID:???.net
ログインユーザーがsysadminじゃなかったってのは昔あったな

389 :NAME IS NULL:2017/05/12(金) 13:25:14.41 ID:???.net
https://msdn.microsoft.com/ja-jp/library/ms178127.aspx
Agent XPsが無効だとメンテナンスプランやらエージェント使えないんでは
あー、でもこれメンテナンスの項目は出てた気がするなあ

390 :NAME IS NULL:2017/05/12(金) 14:33:52.18 ID:???.net
今↓の現象が発生しました。

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

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

391 :NAME IS NULL:2017/05/12(金) 20:07:03.25 ID:Kt4maARH.net
>>388
sysadminというのはロールですよね?
Administratorですし、sysadminにもチェックはありました

392 :NAME IS NULL:2017/05/12(金) 22:11:13.31 ID:???.net
SSMSってエディション関係ないからな。DBエンジンがEXPRESSだったって落ちじゃないのか
接続先のバージョンとか出てたっけ

393 :NAME IS NULL:2017/05/13(土) 06:25:13.83 ID:???.net
2016のssmsとexpress使ってるけど、imeの問題は出ないぞ

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

395 :NAME IS NULL:2017/05/13(土) 11:11:12.87 ID:???.net
>>389
項目は出ているけど開けなかった記憶あるわ
項目自体出てないのは>>392の通りExpress使っているとかじゃないのかね

396 :391:2017/05/13(土) 23:35:10.24 ID:X0tWj4fp.net
すいません、たぶんDBのほうがExpress使ってるかもしれません
どこで確認できますか?また自動でバックアップする方法とかありますか?

397 :NAME IS NULL:2017/05/14(日) 00:45:41.95 ID:???.net
SqlServerに特化したPowerShellがあるらしいけど、使ってる人いるのかな?

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

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

401 :NAME IS NULL:2017/05/23(火) 21:26:20.97 ID:id3rm7dy.net
Hyper-V クラスタ上の仮想サーバー(4コア割当)にSQLServer2016stdをインストールしたとき、SQLServerの必要ライセンスを教えてください

402 :NAME IS NULL:2017/05/23(火) 22:42:33.22 ID:???.net
>>401
https://www.microsoft.com/ja-jp/licensing/learn-more/brief-server-virtual-environments.aspx

403 :NAME IS NULL:2017/06/02(金) 21:45:56.38 ID:???.net
SQLはmacでも使えますか?

404 :NAME IS NULL:2017/06/02(金) 22:27:19.41 ID:???.net
>>403
使えない

405 :NAME IS NULL:2017/06/02(金) 22:47:59.88 ID:???.net
SQL自体は使える(書ける)

406 :NAME IS NULL:2017/06/03(土) 17:30:12.42 ID:???.net
じゃやっぱりWinマシンを買うところからってことですね

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

407 :NAME IS NULL:2017/06/03(土) 17:57:23.00 ID:???.net
>>406
SQLとSQL serverの違いはわかってる?

408 :NAME IS NULL:2017/06/03(土) 21:38:11.44 ID:???.net
んと、SQLはプログラミング言語で
SQLserverはMS社のデータベース

409 :NAME IS NULL:2017/06/03(土) 21:39:40.29 ID:???.net
>>408
アンカー忘れましたが>>407

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

411 :NAME IS NULL:2017/06/03(土) 22:59:56.99 ID:???.net
その記載ってSQL Serverを作成した言語の話じゃないかな

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

413 :NAME IS NULL:2017/06/03(土) 23:29:53.05 ID:???.net
仮想環境入れて、そこでWindowsを動かすという方法もあるけれど
どういう目的で使うのか、どの位の頻度で使うのかにもよるだろうね

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

415 :NAME IS NULL:2017/06/04(日) 00:09:22.35 ID:6QGLXM/f.net
macはバカが使うものだからバカになりたくなかったら今すぐ捨てた方がいいね

416 :NAME IS NULL:2017/06/04(日) 00:14:22.87 ID:???.net
>>415
そういう煽りには乗りませんので

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

418 :NAME IS NULL:2017/06/04(日) 00:34:24.00 ID:???.net
>>412
必須じゃねーよ

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

420 :NAME IS NULL:2017/06/04(日) 00:42:41.51 ID:???.net
>>414
なら仮想環境に入れた方が早いな

421 :NAME IS NULL:2017/06/04(日) 09:26:51.00 ID:???.net
>>419
>>420
ありがとうございます

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

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

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

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

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

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

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

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

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

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

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

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

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

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

430 :NAME IS NULL:2017/06/21(水) 12:19:47.12 ID:HMTE/EOf.net
なんでちょっとMSの中の人よりの言いかたなんだよw

431 :NAME IS NULL:2017/06/21(水) 20:48:17.77 ID:???.net
どの発言がどうMSの中の人よりなのか

432 :NAME IS NULL:2017/06/21(水) 21:12:30.65 ID:eFBPC0xl.net
気になるんだったらもう少し謙虚に聞いたら?

433 :NAME IS NULL:2017/06/22(木) 23:55:36.11 ID:???.net
>>429
ありがとうございます
ご鞭撻頂いた項目で確認したいと思います

434 :NAME IS NULL:2017/06/23(金) 06:45:25.32 ID:???.net
>>433
ご鞭撻?

435 :NAME IS NULL:2017/07/02(日) 11:27:25.38 ID:???.net
鞭打ちの刑

436 :NAME IS NULL:2017/07/02(日) 17:23:55.73 ID:???.net
質問させてください。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

444 :NAME IS NULL:2017/07/06(木) 22:57:10.15 ID:???.net
access単体でデータベースを作成するのと、SQLserver+Vbで作成するのは難易度はどのくらい違いますか?

445 :NAME IS NULL:2017/07/07(金) 00:32:55.05 ID:???.net
だいぶ前にミラーリングが非推奨の機能になっちゃったけど、これからはクラスタ作ってAlwaysOnでやるしか無いのかね
今時オンプレかよとは言わないで

446 :NAME IS NULL:2017/07/07(金) 00:49:20.65 ID:???.net
>>444
それだけの内容では色々分からなすぎて
双方の言語経験があるなら差はほとんどない、としか答えられない

447 :NAME IS NULL:2017/07/07(金) 13:53:10.80 ID:???.net
>>445
ミラーリングしたい理由はなによ

448 :NAME IS NULL:2017/07/07(金) 14:15:59.58 ID:???.net
ミラーリング、手軽で便利なのにな

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

450 :NAME IS NULL:2017/07/18(火) 22:16:07.37 ID:???.net
SQL Server 2017 Release Candidate 1
https://blogs.technet.microsoft.com/dataplatforminsider/2017/07/17/first-release-candidate-of-sql-server-2017-now-available/

てか2016の次2017なのか…RTMには2018ぎりぎりだったり2018になってたりするんじゃ…

451 :NAME IS NULL:2017/07/19(水) 01:16:59.53 ID:???.net
MicrosoftはどうやってSQL ServerをLinuxへポートしたか、ついに2017リリース候補がローンチ
http://jp.techcrunch.com/2017/07/18/20170717how-microsoft-brought-sql-server-to-linux/

452 :NAME IS NULL:2017/07/19(水) 07:37:48.82 ID:???.net
>>449
AlwaysOnは知らんが、ミラーリングの場合、待機側はライセンス要らないよ

453 :NAME IS NULL:2017/07/19(水) 10:59:44.53 ID:???.net
ますますミラーリングから離れられないわな
AlwaysOnは1台につき1ライセンス必要だし

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

455 :NAME IS NULL:2017/07/20(木) 09:59:09.19 ID:???.net
ミラーリングは負荷分散に使えないが

456 :NAME IS NULL:2017/07/27(木) 22:18:19.62 ID:Wb6w4MLZ.net
株式会社メビウス(mob)
http://matsuri.2ch.net/test/read.cgi/infosys/1501121465/

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

458 :NAME IS NULL:2017/07/31(月) 21:46:50.58 ID:lcWS9MWM.net
>>457
知識の蓄積もない、Microsoftは利用者を育てることが重要だと思ってないからな。

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

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

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

462 :NAME IS NULL:2017/08/01(火) 10:45:07.93 ID:XS4cIuUu.net
>>459
日本マイクロソフトのサポートもレベルがひどい

463 :NAME IS NULL:2017/08/01(火) 12:48:27.45 ID:???.net
>>461
いちゃもんつけたいだけのアホ乙 w

464 :NAME IS NULL:2017/08/01(火) 13:30:45.92 ID:XS4cIuUu.net
>>463
日本ユニシスおつ

465 :NAME IS NULL:2017/08/28(月) 21:43:46.23 ID:???.net
教えてください。

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にトリガを仕掛ければ問題なくやりたいことは出来るのですが。
ビューのトリガを動かすのには何か設定が必要なのでしょうか。

466 :NAME IS NULL:2017/09/09(土) 20:24:20.28 ID:???.net
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

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

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

468 :NAME IS NULL:2017/09/13(水) 11:42:20.45 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の応答を早くする方法はないでしょうか?

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

470 :NAME IS NULL:2017/09/27(水) 15:25:41.88 ID:???.net
>>469
差が出るのは最小ログ記録が有効になる操作のみ
https://technet.microsoft.com/ja-jp/library/ms191244(v=sql.105).aspx

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

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

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

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

474 :NAME IS NULL:2017/09/29(金) 16:50:08.86 ID:???.net
>>473
完全と一括ログの比較じゃなくて
単純より一括ログの方が早いって話?

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

476 :NAME IS NULL:2017/10/04(水) 21:53:17.22 ID:???.net
SQL Server 2017 RTM
https://www.microsoft.com/ja-jp/sql-server/sql-server-2017
https://blogs.msdn.microsoft.com/sqlserverstorageengine/2017/10/02/sql-server-2017-available-for-download/

477 :NAME IS NULL:2017/10/05(木) 09:42:17.95 ID:???.net
まだ2012R2なのに

478 :NAME IS NULL:2017/10/05(木) 20:59:09.87 ID:???.net
まだ2005が現役で動いているのに

479 :NAME IS NULL:2017/10/05(木) 21:56:52.98 ID:???.net
>>478
それはヤバくね?

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

481 :NAME IS NULL:2017/10/06(金) 22:25:21.69 ID:???.net
うちの社内システムなんてSqlServer2000+VB6だぞw

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

483 :NAME IS NULL:2017/10/07(土) 17:00:02.65 ID:???.net
>>482
セキュリティって知ってる?

484 :NAME IS NULL:2017/10/07(土) 17:07:32.43 ID:72uw01jP.net
格好の標的だね
metasploitみたいの使って簡単に攻撃されるよ

485 :480:2017/10/07(土) 17:54:07.20 ID:???.net
>>482
そういやいまだにoo4o使ってるシステムもあったw

486 :NAME IS NULL:2017/10/07(土) 17:57:44.46 ID:???.net
>>485
うちのこと?

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

488 :NAME IS NULL:2017/10/08(日) 22:42:53.11 ID:XmeriWwC.net
そもそもそういう発想がセキュリティを理解してない

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

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

491 :NAME IS NULL:2017/10/09(月) 09:17:26.00 ID:???.net
別サーバーからSSMSからは接続出来ないのに
sqlcmdからは操作出来ちゃうアホな設定のDBがあったなあ

492 :NAME IS NULL:2017/10/09(月) 15:57:30.46 ID:???.net
>>491
そんな設定できるんだっけ?

493 :NAME IS NULL:2017/10/09(月) 17:49:41.05 ID:???.net
>>491
技とそういう設定にしてるんじゃないか?

494 :NAME IS NULL:2017/10/16(月) 09:56:16.87 ID:cuhMHRkq.net
SSMSの最新版が出ているようですが、入れると何か良い事ありますか?

495 :NAME IS NULL:2017/10/18(水) 23:00:33.28 ID:???.net
病気が治って彼女が出来て宝くじに当たって出世しまくるなどいい事ずくめ

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

497 :NAME IS NULL:2017/10/21(土) 13:11:28.80 ID:???.net
>>496
文法読み取って色表示しているのがクエリエディタの機能だから無理じゃね

498 :NAME IS NULL:2017/10/21(土) 14:17:38.53 ID:???.net
>>496
同じ機能を持ったテキストエディタに張り付ければいいじゃん

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

500 :NAME IS NULL:2017/10/21(土) 17:19:04.06 ID:???.net
>>499
MERGE

501 :NAME IS NULL:2017/10/21(土) 17:19:21.04 ID:VrrtTrmz.net
>>499
MERGE
https://technet.microsoft.com/ja-jp/library/bb522522%28v=sql.105%29.aspx?f=255&MSPPError=-2147217396

502 :NAME IS NULL:2017/10/21(土) 17:57:32.74 ID:???.net
ありがとうございました。

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

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

505 :名無しさん@そうだ選挙に行こう! Go to vote!:2017/10/22(日) 13:25:38.27 ID:???.net
一時テーブルは大量データには向かない
更新頻度が低いならまあ

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

507 :名無しさん@そうだ選挙に行こう! Go to vote!:2017/10/22(日) 13:40:36.65 ID:???.net
そもそも一旦一時テーブルに入れる必要性が分からんのにどういう手法とか言われても困るだろうよ

508 :名無しさん@そうだ選挙に行こう! Go to vote!:2017/10/22(日) 13:48:30.05 ID:???.net
##付きも一時テーブル?

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

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

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

511 :NAME IS NULL:2017/10/22(日) 21:45:55.65 ID:???.net
>>507
テーブルに入れずにmergeできる?

512 :NAME IS NULL:2017/10/22(日) 21:48:59.23 ID:???.net
できる

513 :NAME IS NULL:2017/10/22(日) 21:51:05.13 ID:???.net
>>512
ちょっと書いてみてよ。

514 :NAME IS NULL:2017/10/22(日) 23:17:00.45 ID:???.net
>>513
マニュアル読めよ
ダメな子だな

515 :NAME IS NULL:2017/10/23(月) 12:22:06.75 ID:???.net
他は知らんがSQLServerのmergeはただの場合分けでupdateとinsert書いてるだけなんだから
updateとinsertに書けることは大体書ける

516 :NAME IS NULL:2017/10/23(月) 12:44:14.56 ID:???.net
>>514
あっ、逃げた w

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

518 :NAME IS NULL:2017/10/23(月) 15:27:52.10 ID:???.net
505辺りから質問者とは別の人だろ

519 :NAME IS NULL:2017/10/23(月) 15:28:32.51 ID:CzSV0ugc.net
普通のワークテーブルも作ったらいけない決まりがあるのか?

520 :NAME IS NULL:2017/10/23(月) 21:08:58.07 ID:???.net
>>517
具体的に書けないなら黙ってろよ
マジでウザイわ

521 :NAME IS NULL:2017/10/23(月) 21:11:50.12 ID:mf1jBI9V.net
データの途中経過も分からない作りにしたい人はどういう感覚なんだろうね。

522 :NAME IS NULL:2017/10/23(月) 21:58:30.84 ID:???.net
>>518
503の書き方からして同一人物だろ

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

524 :NAME IS NULL:2017/10/30(月) 22:53:25.46 ID:0uDb1bS4.net
壊滅的にcliのセンスがないmsにそんな期待するだけ無駄

525 :NAME IS NULL:2017/10/30(月) 23:07:01.23 ID:???.net
sqlserverでpowershell使っている人いないだろ

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

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

526 :NAME IS NULL:2017/10/31(火) 11:37:21.58 ID:IzoEenp0.net
>>525
SQL Serverそのものが、PowerShellのスクリプトを吐くんだが?

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

528 :NAME IS NULL:2017/10/31(火) 13:10:45.30 ID:IzoEenp0.net
>>527
management studio

529 :NAME IS NULL:2017/10/31(火) 17:24:38.56 ID:???.net
>>528
SSMSがどんなサーバ設定のスクリプト吐くの?

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

530 :NAME IS NULL:2017/10/31(火) 20:58:07.94 ID:???.net
かなり古い記事だが・・・

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

531 :NAME IS NULL:2017/10/31(火) 22:56:42.42 ID:???.net
教えてください。

他のジョブの状態によって特定のジョブを実行するかどうかを判定するストアドを書きたいと思います。
ジョブの状態は システムのストアドの 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 するとエラーが発生することなのですが、
こういうケースでは一般にどのように対応するのが定石なのでしょうか。

532 :NAME IS NULL:2017/10/31(火) 23:03:51.74 ID:???.net
>>531
ストアドをテーブル関数化すればselect使えるからうまくいくかも

533 :NAME IS NULL:2017/10/31(火) 23:48:42.51 ID:???.net
とりあえずエラートラップして握りつぶせば良いんじゃね

534 :NAME IS NULL:2017/10/31(火) 23:57:22.70 ID:???.net
>>531
https://stackoverflow.com/questions/653714/insert-results-of-a-stored-procedure-into-a-temporary-table

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

535 :530:2017/11/01(水) 22:25:35.36 ID:???.net
みなさん、ありがとうございます。

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

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

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

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

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

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

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

539 :NAME IS NULL:2017/11/09(木) 13:19:48.42 ID:???.net
SQL欄表示すりゃ何してるか分かるよ

540 :NAME IS NULL:2017/11/10(金) 10:43:05.09 ID:???.net
SQLServerというよりか、ManagementStudioの話なんですが
ビューの作成や保守が死ぬほど使いづらいです。

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

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

541 :NAME IS NULL:2017/11/10(金) 12:10:30.05 ID:???.net
>>540
もう全部コードで書きなよ。

542 :NAME IS NULL:2017/11/10(金) 12:56:12.39 ID:???.net
新規クエリタブ開いてコピペしろ
アホらしいがこれが一番早い

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

544 :NAME IS NULL:2017/11/10(金) 13:22:51.03 ID:???.net
ムリダナ(・x・)

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

546 :NAME IS NULL:2017/11/10(金) 18:57:49.31 ID:+oA2Me4B.net
エクセルにsql作れる関数なんかあったっけ?

547 :NAME IS NULL:2017/11/10(金) 19:42:05.74 ID:???.net
>>546
関数はない計算式だよ

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

548 :NAME IS NULL:2017/11/10(金) 21:18:25.39 ID:5FHSQ6Bb.net
そういう話ではない。初心者なのかSQLスクリプトを使用する習慣がないようだよ。

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

550 :NAME IS NULL:2017/11/15(水) 10:42:03.36 ID:???.net
はい

551 :NAME IS NULL:2017/11/15(水) 10:51:52.76 ID:???.net
>>550
そこを何とかお願いします

552 :NAME IS NULL:2017/11/15(水) 11:44:10.62 ID:???.net
内部結合ならともかく、外部結合だと
その二つは違う場合があるんだが

553 :NAME IS NULL:2017/11/15(水) 11:48:01.92 ID:???.net
だな

554 :NAME IS NULL:2017/11/15(水) 12:19:38.98 ID:2A3D0a21.net
で?

555 :NAME IS NULL:2017/11/15(水) 12:29:05.63 ID:???.net
>>549
select T1.* ,T2.hage1 ,T2.hage2 from T1 left join T2 on T1.id = T2.id;
とか T2だけカラムを羅列する

556 :NAME IS NULL:2017/11/15(水) 12:43:55.38 ID:LwMIMZHH.net
また自演か

557 :NAME IS NULL:2017/11/15(水) 14:31:55.25 ID:6Q/c6Tcb.net
>>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では出来ませんか?

558 :NAME IS NULL:2017/11/15(水) 14:34:51.14 ID:???.net
>>557
試してみれば?

559 :NAME IS NULL:2017/11/15(水) 22:24:07.29 ID:???.net
>>557
お前は髪が薄い俺を怒らせたから教えない

560 :NAME IS NULL:2017/11/16(木) 09:20:05.84 ID:???.net
>>559
少し工夫したら出来ました。

561 :NAME IS NULL:2017/11/16(木) 12:27:44.35 ID:RhBRQtps.net
ハゲの事を薄毛って言うの本人だけ説

562 :NAME IS NULL:2017/11/23(木) 21:49:46.78 ID:???.net
質問なのですが
sqlcmdやbcpでリモートのSqlServerにログインする場合
パスワードを何度も間違えても特にロックアウトされたりとかはしないですよね?

563 :NAME IS NULL:2017/11/23(木) 21:55:28.92 ID:???.net
>>562
Windows認証ならADやPCのローカルポリシーでパスワードのロックアウト設定引き継ぐことはあるよ
sa認証は予め設定する必要あるけど

564 :NAME IS NULL:2017/11/24(金) 22:42:10.74 ID:???.net
マイクロソフトのサイト行くとSqlServerのサンプルデータベースとして
「AdventureWorks」ってのが出てくることが多いんだけどあれって昔からあるよね?
あれの元ネタというか由来ってなんなのかな?

565 :563:2017/11/27(月) 04:37:45.34 ID:???.net
誰もわからんか・・・
自分も調べたけどわからなかった・・・orz
Accessにも出てくるし、20年来の謎

566 :NAME IS NULL:2017/11/27(月) 08:17:32.83 ID:???.net
サンプルだからテキトーに付けた名前だろ
下手に実在の会社と被ると色々面倒だからそこら辺は調べてるとは思うけど

567 :NAME IS NULL:2017/11/27(月) 17:09:44.64 ID:k8i9IH/m.net
AdventureWorksだと、ただの検証用という意味で、何のひねりもない。

568 :NAME IS NULL:2017/11/29(水) 06:41:31.17 ID:???.net
変わるらしいぞ

https://blogs.msdn.microsoft.com/dataplatjp/2016/06/23/sql-server-2016-changed/
「今まで慣れ親しんだ AdventureWorks ではなく、Wide World Importers が今後のサンプルのメインストリームになります」

569 :NAME IS NULL:2017/11/29(水) 17:56:41.10 ID:???.net
>>568
そんな情報良く気付くなあ。感心

570 :NAME IS NULL:2017/12/04(月) 22:24:53.03 ID:???.net
SSMSってインストールしたユーザーならWindows認証は必ず通れると思っていたんだけど
入れないって連絡きたけどそんなことってあるのか?

571 :NAME IS NULL:2017/12/04(月) 22:27:52.00 ID:6wISNT0k.net
INSERTやMERGEでは
VALUES ( values_list)
で沢山の値を指定出来ますが、生成されるSQL文は何文字以内などの制限はありますか?
例えば一気に100万件くらいのデータを追加しても正常に動きますか?
何らかの制限があれば教えて下さい。

572 :NAME IS NULL:2017/12/05(火) 13:21:31.06 ID:???.net
>>570
結構前のVerだとインスコ時に明示的に追加してやらんとならんかったような

>>571
1ステートメントあたりの文字数制限はあった気がする
それ以内なら何千万行でも問題ない

573 :NAME IS NULL:2017/12/05(火) 14:41:05.87 ID:???.net
SSMSをインストールしたら誰でもDBにログインできるってなら
俺のPCは世の中の全てのSQL Serverにつながるのかね

574 :NAME IS NULL:2017/12/05(火) 19:19:58.29 ID:75Z5+bpM.net
>>573
どういうバカの思考回路だとそんな結論になるのかちょっとだけ気になるよ

575 :NAME IS NULL:2017/12/05(火) 19:47:15.06 ID:???.net
他人の夢の中にログインできるDC mini が欲しい

576 :NAME IS NULL:2017/12/05(火) 19:58:36.60 ID:???.net
>>574
>SSMSってインストールしたユーザーならWindows認証は必ず通れると思っていた

577 :NAME IS NULL:2017/12/05(火) 20:20:32.04 ID:75Z5+bpM.net
>>576
ああそうか「ユーザー」をキミ自身のことだと考えたわけか
なかなか新鮮な文脈解釈だと思うよ

578 :NAME IS NULL:2017/12/07(木) 13:42:17.87 ID:l7erEtxE.net
LinuxでSSISをインストールしたいんだけど、エディッション選択で何を選んでも
”Could not write Licensing information”と出て先へ進めない。

SQL Server本体の時はDevelopper Editionを問題なくインストールできたのになんでよーー

579 :NAME IS NULL:2017/12/07(木) 18:44:45.88 ID:IMylgnN4.net
>>578
エラーメッセージを素直に解釈すれば、パーミッションの問題たろうに。

580 :NAME IS NULL:2017/12/08(金) 08:11:01.53 ID:???.net
>>572
バージョン聞くの忘れたけど多分2008か2012なんだよね
調べてみます
ありがとう

581 :NAME IS NULL:2017/12/08(金) 16:45:10.45 ID:???.net
>>81
>>390
昨日現象が出て、今スレ開いたらそのものずばりの人がいてやったーと思ったらまだ解決してねえ!

582 :NAME IS NULL:2017/12/11(月) 17:55:36.58 ID:ExZ8B70/.net
【ブーメラン】漫画家(27)「放射脳は無知」→急死 (;゚Д゚) アニメーター(39)「政府は正しい」→急死
https://rosie.5ch.net/test/read.cgi/liveplus/1512349462/l50
【ナニコレ】早朝死亡2名、マクド死亡2名、バンド死亡3名→皆30日、マラソン危篤3名、柏市隣2名
https://rosie.5ch.net/test/read.cgi/liveplus/1512269420/l50

583 :NAME IS NULL:2017/12/13(水) 21:30:09.63 ID:???.net
全くの無知からSQLサーバーの担当になりました。
データベースからデータを引っ張ったりして資料作成する業務なんですが、いい勉強方法ありませんか?
引き継ぎも無しに任されたので混乱してます

584 :NAME IS NULL:2017/12/13(水) 21:43:37.22 ID:???.net
>>583
とっつきやすいのはMSの自習書あたりかね

585 :NAME IS NULL:2017/12/13(水) 22:55:55.46 ID:???.net
作成したDBをSSMSで削除したいのですが、使用中で削除出来ない場合があります。
最悪、サーバーを再起動すれば削除出来るんですが、簡単に削除する方法はありますか?

586 :NAME IS NULL:2017/12/13(水) 23:46:30.65 ID:???.net
接続してるユーザ全部落とせばいけるんじゃね

587 :NAME IS NULL:2017/12/14(木) 00:01:59.92 ID:???.net
>>586
誰も接続してないんですが、

588 :NAME IS NULL:2017/12/14(木) 00:02:51.71 ID:???.net
>>587
某ブログで紹介してたこのスクリプト使ってる
https://kashfarooq.wordpress.com/2013/02/20/how-to-force-sql-server-to-drop-db-connections/

589 :NAME IS NULL:2017/12/14(木) 12:19:58.71 ID:???.net
>>587
それあかんやつやろ
ハッキングされとんで

590 :NAME IS NULL:2017/12/14(木) 12:51:38.09 ID:???.net
SMS 17使っていて、更新があると出るのでクリックするとダウンロードサイトが開くが
通常のインストーラーしか見当たらない。Updateはどこにあるの?

591 :NAME IS NULL:2017/12/15(金) 10:10:54.10 ID:???.net
>>585
使用状況モニターから掴んでいるプログラムを強制終了

592 :NAME IS NULL:2017/12/17(日) 22:23:55.62 ID:???.net
c#でEFの質問はここでしょうか?

593 :NAME IS NULL:2017/12/17(日) 22:38:01.11 ID:???.net
どんな思考経路でそんな結論に至ったのか

594 :NAME IS NULL:2017/12/17(日) 22:54:35.12 ID:???.net
同じMSだからだよ。それくらい気付けよな。

595 :NAME IS NULL:2017/12/17(日) 23:06:11.41 ID:???.net
>>592
こっちだけどEFじゃろくな回答貰えないと思う
https://mevius.5ch.net/test/read.cgi/tech/1511872248/

596 :NAME IS NULL:2017/12/18(月) 10:37:47.27 ID:???.net
ライセンスの話で恐縮ですが

SQL Server2016のライセンスを解説します
http://sql-oracle.com/sqlserver/?p=363



1.SQL Server 2016 Standard 4コア 1,017,000円
2.SQL Server 2016 Standard 日本語版 サーバー ライセンス 111,000円
3.SQL Server 2016 クライアント アクセス ライセンス(1CAL) 27,000円

という参考価格が出てます。実際の価格は別にして、4コアのサーバーで運用するとき

(1017,000-111000)÷27000≒33.6

と求まり、つまり34ユーザー以上だったら、1. で買った方が得、ということで合ってますか?
実際のクライアント数は50台ちょっとです。

597 :NAME IS NULL:2017/12/18(月) 11:20:20.87 ID:???.net
>>596
msに聞けよw

598 :NAME IS NULL:2017/12/18(月) 11:39:53.12 ID:???.net
グループ会社が絡む複雑な話だったらマイクロに相談するけど
よくある中小企業のサーバー1台、クライアント50台ちょっと、という実に普通の話だもんで

599 :NAME IS NULL:2017/12/18(月) 19:01:41.72 ID:WUe68RNI.net
グループ会社が絡んでも別に複雑じゃないけどクロソにはとりあえず相談するだろ

600 :NAME IS NULL:2017/12/18(月) 19:04:02.94 ID:???.net
>>596
コアライセンスのがいいね
ただ今後SQLServer増やす予定があるならcalは他のサーバーでも
使えるのでサーバーcalライセンスのほうがいい

601 :NAME IS NULL:2017/12/18(月) 19:10:55.79 ID:???.net
その辺りのライセンス云々は富士通とかベンダ解説資料がぐぐると良く引っかかるよね
同じようなことしたけど、VL価格とか出てくると更に訳がわからなくなって辛かった記憶有るわ

602 :NAME IS NULL:2017/12/27(水) 13:39:13.96 ID:???.net
ALTER TABLE テーブル名
SET ( LOCK_ESCALATION = DISABLE )

やってもエスカレーションするぽいんだが
データベースエンジン再起動させないと反映されないの?

begin transaction
update テーブル set 項目=なんとか where 主キー=XX
select 項目 from テーブル where 主キーじゃない項目 = YY  ← これが通らない

ちなみに

select 項目 from テーブル with (nolock) where 主キーじゃない項目 = YY

だと当然にして即座に通る

603 :NAME IS NULL:2017/12/27(水) 13:43:23.90 ID:???.net
ちなみに 主キーじゃない項目 = YY は 主キー=XX とは全く別レコード

2行目のupdateした直後にロックのかかり具合を見ると
type=PAGE、request_mode=IX と type=KEY、 request_mode=X
がそれぞれ、数個出現してる

604 :NAME IS NULL:2017/12/27(水) 19:25:55.49 ID:lvRR+7xm.net
SELECTで行ロックしたいのかどうかがわからない。

あなたの説明だと行ロックしたいのか、ただロックエスカレーションをどうにかしたいのか、なんだかわからない。

605 :NAME IS NULL:2017/12/27(水) 20:08:35.42 ID:???.net
>>74-79
この辺に、Accessファイルをリンクサーバで使う話が出てますけど、SQLServerが64bitでAccessが32bitの時の方法を知っている方いませんか
SQLServerも32bitならできることは確認しています
> ACE.OLEDBってのがあって、これは64ビット版もある
これも試してみましたが、うまく使えていません
動作確認のために純粋な64bit環境を用意してみようとも考えていますが、Officeはしばらく32bit版を使う必要があるので、純粋な64bit環境に移行は当分できません
アドバイスをお願いします

606 :NAME IS NULL:2017/12/27(水) 21:12:25.91 ID:???.net
>>605
ここみて32bitのAccessDatabaseEngine.exeをインストールすればよい
http://plus-sys.jugem.jp/?eid=446

officeの64bitが入ってたら一旦アンインストールすれば普通にインストールできる

607 :NAME IS NULL:2017/12/27(水) 21:23:20.87 ID:FlxrmEMU.net
>> 602
ロックエスカレーションを止めたかどうかまずは確認しろ
https://www.projectgroup.info/tips/SQLServer/MSSQL_00000016.htmlhttps://www.projectgroup.info/tips/SQLServer/MSSQL_00000016.html

608 :NAME IS NULL:2017/12/27(水) 21:39:07.90 ID:???.net
>>606
ここのリンク先は参考にならないわ
sqlserverやosのbitは無視して使いたいaccessファイルのbit基準でAccessDatabaseEngine.exeを
msからダウンロードしてインストールすればよい

609 :NAME IS NULL:2017/12/28(木) 02:48:09.70 ID:???.net
>>606>>608
Officeが既に32bit版なので、32bit版のACE.OLEDBは入っていたので、32bit版のAccessDatabaseEngine.exeはインストールしたことはありませんでした
試してみます
レスありがとうございました

610 :NAME IS NULL:2017/12/28(木) 03:10:35.02 ID:???.net
普通に32ビットのACCESS入れたら
32ビットのSQLServerクライアントも入ったと思ったがなぁ

611 :NAME IS NULL:2017/12/28(木) 03:25:09.72 ID:???.net
もしかして、SQLServerからACCESS(のデータベース)にリンク張りたいって話か?
だったらSQLServerと同じビット数のACE入れないとダメだぞ

SQLServer(64ビット)入れたサーバに、32ビットACCESSも入れたらなら
ACEの64ってサポートされてないはず

どうしてもやりたいなら>>606のリンク先

612 :NAME IS NULL:2017/12/28(木) 03:44:32.78 ID:???.net
>>602
ALTER TABLEでLOCK_ESCALATION = DISABLE したとしても
ロックエスカレーションが完全に禁止されるわけじゃないぞ

そもそも、そのselectとupdateは同じトランザクションなのか?
分離レベルは何でやってるのとか色々考慮点はあるんだが

613 :NAME IS NULL:2017/12/28(木) 04:16:09.80 ID:???.net
>>603
インテントロックは行レベルで取得されない気がしたんだがなぁ
そもそも、ページにIXかかっても、そのページにIXロックかけれるんだぜ
(もちろん行単位のロックが競合しないとか条件はあるが)

614 :601:2017/12/28(木) 09:30:08.82 ID:???.net
>>604 >>612
selectは行ロック不要です。

ただ問題としたいのは
最初のupdateにより、その1行はロックされるのは当然にして
全く別の行のSELECTができなくなる(ロックされて読めない)、っていう挙動が解せないという話です。

たった1行のupdateに対して、かなり広範囲にロックかかってる気がしてならないのです

615 :NAME IS NULL:2017/12/28(木) 09:33:45.08 ID:???.net
一つ考えられるのは、
updateで1行を更新するとき、その項目はインデックス(非クラスタ)の一部になってます。

まさかインデックスに使われている項目を更新すると
さながらテーブルロックのような状態になるなんてことないですよね?

616 :NAME IS NULL:2017/12/28(木) 13:00:00.38 ID:???.net
>>615
インデックスの項目更新したらインデックスの再構成しないと遅くなりそう
インサートとデリートでインデックス項目変更したほうがいいんじゃね

617 :NAME IS NULL:2017/12/28(木) 16:51:57.21 ID:???.net
>>614
だからIXロックはIXロックをブロックしない
IXロックがブロックの直接の原因じゃない

たとえばファントムリード防止したかったら、範囲ロックせざるを得ないんだが
そのあたり理解してる?

618 :NAME IS NULL:2017/12/28(木) 19:28:33.72 ID:???.net
>>606>>608>>610>>611
自己解決できました
32bit環境で機能していたのは確認していましたが、32bit版のACE.OLEDBはなくJET4.0だったので、32bit環境でACE.OLEDBでためしたところうまき行きませんでした
結果は、64bit環境と同じエラーで、セキュリティの問題でした
JET4.0では使えるのにACE.OLEDBではダメと言う状況で、SQLServerの実行アカウントをネットワークサービスアカウントではなく、ローカルのユーザにして対応できました

619 :NAME IS NULL:2017/12/29(金) 09:16:03.77 ID:FyU/cwrw.net
>>616
素人は口出すな

620 :NAME IS NULL:2017/12/29(金) 09:20:54.56 ID:FyU/cwrw.net
>>614
それぞれ別レコードで、かつUPDATE、SELECTの順に行う理由がわからない。

別のレコードであればSELECTしてから、UPDATEでもいいんじゃないのか?

またはUPDATEしたあとにコミットしてからSELECTすればいい。

621 :NAME IS NULL:2017/12/29(金) 10:08:58.24 ID:???.net
>>615
nolockオプションつけてやってみれば?
ただし一瞬消えてしまうようですがリンク参照
http://bxdxmx.hatenablog.com/entry/20090828/1251444766
内部的にはdelete とinsertでやってるからロックされているかも

622 :NAME IS NULL:2017/12/29(金) 11:04:43.57 ID:dtNZwIie.net
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

SEPQX7O4N7

623 :NAME IS NULL:2018/01/01(月) 12:26:46.33 ID:???.net
テーブルの中のカラム名のうち、Identity属性を持っているものを取り出す方法
はありますか?

624 :NAME IS NULL:2018/01/05(金) 23:34:44.66 ID:???.net
sys.columnsでis_identity=1のもの検索すれば良いんじゃね

625 :NAME IS NULL:2018/01/23(火) 16:28:39.64 ID:???.net
初めてインストールしたは良いけど、起動して新規のデータベースをつくるにはどうするのかが分からん(-_-;)

626 :NAME IS NULL:2018/01/23(火) 16:31:34.95 ID:???.net
SSMSで作ってどうぞ

627 :NAME IS NULL:2018/01/23(火) 17:04:59.69 ID:???.net
>>626 さん、ありがとうございます。
SSMSというのをインストールして起動したら、なんか分かるような気がしてきました。
Accessとそんなに変わらんだろうって勝手に思ってたので焦ってます(笑)

628 :NAME IS NULL:2018/01/23(火) 19:29:57.39 ID:a3XdT7kq.net
焦らんでも中身はAccessとそんなに変わりなく使えるから落ち着いてどうぞ

629 :NAME IS NULL:2018/01/24(水) 01:06:35.63 ID:???.net
ACCESSはフロントエンドとDBMSと一体だからな
SQL ServerはDBMSだけだし

ACCESSからSQL Server使うでもいいんじゃない
まっさらな新規DB作るのだけ苦労するかもしれんが

630 :NAME IS NULL:2018/01/26(金) 05:35:03.89 ID:???.net
ssmsでカラムの表示の順番って指定出来る?

631 :NAME IS NULL:2018/01/26(金) 12:49:54.65 ID:pxozcjcA.net
>>630
ビューでも作れば?

632 :NAME IS NULL:2018/01/26(金) 19:36:22.24 ID:???.net
>>630
編集画面のこと言ってるなら無理だと思う

633 :NAME IS NULL:2018/01/30(火) 17:06:23.96 ID:???.net
やりすぎ防犯パトロール、特定人物を尾行監視 2009年3月19日19時7分配信 ツカサネット新聞
http://headlines.yahoo.co.jp/hl?a=20090319-00000026-tsuka-soci

この記事で問題になった通称やりすぎ防パトは、創価学会と警察署が引き起こしていたようです

掻い摘んで説明すると

・創価学会は、町内会や老人会、PTA、商店会等の住民組織に関し、学会員が役員になるよう積極的に働きかける運動を
 90年代末から開始し、結果、多くの住民組織で役員が学会員という状況が生まれた

・防犯パトロールの担い手は地域の住民と住民組織で、防犯活動に関する会議や協議会には、住民組織の代表に役員が出席する為
 防犯活動や防パトに、創価学会が間接的に影響力を行使可能となった

・防パトは住民が行う為、住民が不審者や要注意人物にでっち上げられるトラブルが起きていたが
 創価学会はその緩さに目をつけ、住民組織を握っている状況を利用し、嫌がらせ対象者を不審者や要注意人物にでっち上げ
 防パトに尾行や監視、付き纏いをさせるようになった

・防パトは地元警察署との緊密な連携により行われる為、創価学会は警察署幹部を懐柔して取り込んでしまい
 不審者にでっち上げた住民への嫌がらせに署幹部を経由して警察署を加担させるようになった

・主に当該警察署勤務と考えられる創価学会員警察官を動かし、恐らく非番の日に、職権自体ないにもかかわらず
 私服警官を偽装させて管轄内を歩いて回らせ、防犯協力をお願いしますと住民に協力を求めて回り
 防犯とは名ばかりの、単なる嫌がらせを住民らに行わせた(防犯協力と称し依頼して回っていた警察官らの正体は恐らく所轄勤務の学会員警察官)
 ※これに加えて防犯要員が同様のお願いをして回る

・こうして防犯パトロールを悪用し、住民を欺いて嫌がらせをさせつつ、創価学会自体も会員らを動員し、組織的な嫌がらせを連動して行った

つまり警察署に勤務する学会員警察官、警察署幹部、創価学会が通称やりすぎ防犯パトロールの黒幕

詳細は下記スレをご覧下さい
やりすぎ防犯パトロールは創価学会と警察署の仕業だった
https://rio2016.5ch.net/test/read.cgi/bouhan/1516500769/

634 :NAME IS NULL:2018/02/04(日) 16:38:15.37 ID:ygeeHQOY.net
SELECT "User"."id" AS "User__id", "User"."company" AS "User__company",
"User"."name" AS "User__name", "User"."itaric" AS "User__itaric",
"User"."system" AS "User__system", "User"."year" AS "User__year"
FROM "public"."users" AS "User" WHERE 1 = 1 ORDER BY "User"."itaric" asc,
"User"."system" desc

複数ソートを実行したいのだけれども、実行できてる??

635 :NAME IS NULL:2018/02/05(月) 07:58:44.26 ID:Q16Lz/UI.net
>>634
意味のないダブルクォーテーションと、意味のないWHERE句の条件と、複数ソートという謎の用語がわからない。

636 :NAME IS NULL:2018/02/05(月) 08:28:06.73 ID:???.net
ダブルクォーテーションはOracleから持ってきたからなのかも
複数ソートは複数キーのことかも
Whereはよくわからん

って言うか何を言いたいのかよくわからん w

637 :NAME IS NULL:2018/02/05(月) 16:22:38.74 ID:???.net
メディアオプションを[追加]にしてジョブで毎日バックアップしていますが
これだとどんどんバックアップファイルのサイズが大きくなってしまうので
常に最新の10日分だけ残すというバックアップの方法を教えてください
よろしくお願いします

638 :NAME IS NULL:2018/02/05(月) 19:13:11.77 ID:wLbeZJwJ.net
>>635
意味のないレスすんな
答えられんのなら黙ってる事だな

639 :NAME IS NULL:2018/02/05(月) 22:52:50.94 ID:Q16Lz/UI.net
>>638
仮定の話をするのはIT技術者ではない。

640 :NAME IS NULL:2018/02/05(月) 22:54:32.98 ID:Q16Lz/UI.net
Where 1 = 1 だけでSQLがまったくわかってないことがわかる。

641 :NAME IS NULL:2018/02/05(月) 23:14:09.67 ID:???.net
少なくとも文法はわかってるようだが?

642 :NAME IS NULL:2018/02/06(火) 04:47:07.31 ID:???.net
「WHERE 1 = 1」は↓みたいに書いとくと任意の行をコメントにするだけで条件の入れ替えが簡単に出来るから開発時はたまにやるかもw

WHERE 1 = 1
AND フィールド1 = '○○○'
AND フィールド2 = '△△△'
AND フィールド3 = '□□□'

643 :NAME IS NULL:2018/02/06(火) 07:36:44.36 ID:AHs/sZxD.net
>>642
やめろ

644 :NAME IS NULL:2018/02/06(火) 07:49:13.23 ID:???.net
>>642
プログラムでsql作る時普通に使うな

645 :NAME IS NULL:2018/02/06(火) 11:48:04.77 ID:???.net
うん。0 <> 1 も時々

646 :NAME IS NULL:2018/02/06(火) 20:47:44.36 ID:WoDXj185.net
【有賀さつき(52)小林麻央(34)黒木奈々(32)】 世界教師 マイトLーヤ「早死には原発事故の隠蔽のせい」
http://rosie.5ch.net/test/read.cgi/liveplus/1517828233/l50

647 :NAME IS NULL:2018/02/07(水) 03:21:36.81 ID:???.net
>>642
0=0
じゃダメなん?

648 :NAME IS NULL:2018/02/07(水) 21:05:34.23 ID:???.net
>>647
ゼロはオーと打ち間違えやすいので避けたい
テンキーなら間違えないが
ノートパソコンだとゼロとオーは隣あっていて打ち間違えやすい

649 :NAME IS NULL:2018/02/07(水) 22:14:15.01 ID:nx8/8ate.net
>>648
見間違えるのはわかるけど打ち間違えってw
それおまえだけだからwwww

650 :NAME IS NULL:2018/02/07(水) 22:38:55.94 ID:???.net
配列がランダムに変わるキーボードか?

651 :NAME IS NULL:2018/02/08(木) 06:50:41.49 ID:???.net
そもそも[O] なんて名前つけないし

652 :NAME IS NULL:2018/02/08(木) 07:38:34.47 ID:???.net
where 1=1はsql文の慣例句みたいなものでgoogleで検索してもいっぱいでてくる。そんな事で悩む必要はない。
http://kinocolog.com/where11/

653 :NAME IS NULL:2018/02/08(木) 11:53:55.72 ID:???.net
100文字以内のデータしか入れない場合には
nvarchar(100)
で良いですよね?
質問1
全角文字で半角文字でも100文字入るんですよね?
質問2
nvarchar(max)
にすると無駄にメモリやハードディスクを使いますか?

654 :NAME IS NULL:2018/02/08(木) 13:35:25.45 ID:???.net
回答1
Yes
回答2
No
varcharは可変長だから入ってる分だけの消費

655 :NAME IS NULL:2018/02/08(木) 19:08:59.93 ID:???.net
>>654
ありがとうございました。
>varcharは可変長だから入ってる分だけの消費
では、カラムが10文字でも100文字でも
とりあえずnvarchar(max) を使っておけば良いのでしょうか?
どういう場合にnvarchar(100) などを使うのでしょうか?

656 :NAME IS NULL:2018/02/08(木) 19:18:47.90 ID:???.net
index張らないならMAXでもいい
張るなら900バイト以下でなければならない

657 :NAME IS NULL:2018/02/08(木) 22:35:21.32 ID:???.net
教えてください。

テーブルA に製品の情報がたくさん登録されています。
この中から、不特定多数の特定の文字列で始まらない名称の製品を検索したいと思います。
条件が固定であれば次のような SQL を書けます。

SELECT *
FROM [テーブルA]
WHERE NOT ( [NAME] LIKE 'A%' OR [NAME] LIKE 'B%' OR [NAME] LIKE 'C%' )

条件(先頭の文字)を動的に変更するとしたら、
上のをストアドにしてパラメータで与えるとか、
条件をテーブルに保存しておくなどがあると思うのですが、SQL の書き方がわかりません。
どうするのが一般的か、教えてください。

658 :NAME IS NULL:2018/02/09(金) 03:57:06.88 ID:QeQdDyiD.net
>>657
パラメータなりテーブルなりで可変にして
動的SQLかなあ
http://blog.livedoor.jp/akf0/archives/51205355.html

659 :NAME IS NULL:2018/02/09(金) 14:55:37.85 ID:???.net
テーブル型を引数にして

where not Left([NAME], 1) in (select [Word] from @引数)

みたいな風かな
ASCII しないといかんかもしれん

660 :656:2018/02/11(日) 00:41:15.28 ID:???.net
>>658,659
ありがとう。
どっちのやり方も知らなかったです。

とりあえず 658 さんの方法を発展させてやってみようと思います。
657 さんの動的 SQL は便利すぎ。

661 :NAME IS NULL:2018/02/11(日) 01:14:00.27 ID:???.net
一時テーブルに検索文字列セットして
left joinでlike 演算子で連結してnull のものだけ取ればいいように思える
https://teratail.com/questions/65949

662 :NAME IS NULL:2018/02/11(日) 04:44:52.94 ID:iUCuMXup.net
>>660
動的SQLはできるだけ使わないように。条件の組み合わせが大量になければ、静的SQLで書く。動的SQLはSQLの組み立て方によっては、可読性、保守性がさがり、さらにコーディングミスをおこし、スペースを入れわすれた等おかしなSQLを簡単に仕込んでしまう。

663 :NAME IS NULL:2018/02/11(日) 04:51:00.67 ID:iUCuMXup.net
>>657
それ単にパラメータによって、LIKE用の文字列を作り分けておけばいいだけ。

664 :656:2018/02/12(月) 00:49:37.83 ID:???.net
>>661
ありがとう。
left join で like って使えるんですね。
その結果が null のモノだけって発想がありませんでした。
こちらをまず試してみます。

>>662,663
ありがとう。
うん、そう思って動的 SQL は最後の手段にしとこうかと。

665 :NAME IS NULL:2018/02/12(月) 07:54:28.97 ID:???.net
こうしてまたバカのバカによるバカのためのバカノウハウが広まるのであった

666 :NAME IS NULL:2018/02/12(月) 09:52:09.80 ID:???.net
スマートな解決策書けてりゃ格好いいんだけどなぁ...
>>665だとバカの遠吠えにしかなってない w

667 :NAME IS NULL:2018/02/12(月) 11:51:24.82 ID:tzC/U9n1.net
結局、RDBになるとSQLが魔法になってプログラムの見た目はシンプルでも、RDBMSの処理が複雑になるようなものを作るやつが多すぎる。

RDBの処理が汚なくなり、無意味に負荷がかかるようなプログラミムを書いても、RDBMSの処理がどう処理しているのか考えないから、珍妙なことを推奨する。

668 :NAME IS NULL:2018/02/12(月) 12:19:14.11 ID:???.net
>>666
そのスマートな解決策()が動的SQLなんよ
バカには難しいらしいけんどねw

669 :NAME IS NULL:2018/02/12(月) 13:30:52.28 ID:???.net
動的SQLでどや顔 w

670 :NAME IS NULL:2018/02/12(月) 19:57:26.33 ID:tzC/U9n1.net
データベース板はレベルが低い。リレーショナルデータベースに詳しくもないのにこうだ、これが正解だと言いはる人間ばかり。

671 :NAME IS NULL:2018/02/12(月) 22:04:38.94 ID:???.net
せめてどこがどう「無意味に」負荷がかかってるのか書けないのかね

672 :NAME IS NULL:2018/02/13(火) 01:01:59.31 ID:mpzcP+RA.net
>>671
検索結果が同じSQLでも、RDBMSではSQLの構文解析(ソフトパース、ハードパース)が行われ、実行プランも作り直しなることもあり、RDBMS側の処理が変化する。

プログラムだと結果は同じなのに、こうすると遅い、速いや、意味のないコードを書くと文句を言うくせにSQLになると、とたんにRDBMSもプログラムだということを忘れているか、理解していない。

SQLは魔法ではない。

673 :NAME IS NULL:2018/02/13(火) 06:48:41.32 ID:???.net
別にSQLでもこう書くべきとか言う議論は普通にやられてるしお前がそう言うのを見てないだけかと

674 :NAME IS NULL:2018/02/13(火) 19:29:30.08 ID:???.net
>>672
同じ結果の処理を同じ手間で書けるなら、負荷は軽い方がいいに決まってるけど
で、その説明でどこがどう負荷かってるの?
まさかクエリキャッシュ効かないでコンパイル時間がとか言う気?

>>673
まあしかし、理想はそのへん意識しないでRDBMSに任せる事なんだろうとは思う
オプティマイザの動作を予想して奇妙なSQL書くのは本末転倒だし

675 :NAME IS NULL:2018/02/13(火) 20:13:55.26 ID:0W+Ckc+y.net
久しぶりにアツいマウント合戦開幕したなw
どっちも負けろwwww

676 :NAME IS NULL:2018/02/13(火) 21:30:57.57 ID:0W+Ckc+y.net
どした?おい?w
ファイッッッ!!!wwwwww

677 :NAME IS NULL:2018/02/13(火) 21:40:47.70 ID:???.net
SQL SERVER2014Expressが動いているWindowsサーバーのOSをクリーンインストール
する予定なのですが、データベースを丸ごとバックアップしておいて、あとで戻すなどは
可能ですか?ヒントを教えて下さい。DBのサイズは500MB 程度です。

678 :NAME IS NULL:2018/02/13(火) 22:07:12.29 ID:???.net
>>677
データベースのデタッチとアタッチ

679 :NAME IS NULL:2018/02/13(火) 23:35:26.82 ID:???.net
リンクサーバー設定とかデータベースの設定とかもバックアップする方法ってないものか
ドライブごとバックアップするしかないのかな

680 :NAME IS NULL:2018/02/14(水) 00:04:57.46 ID:???.net
masterバックアップして戻せば戻ったような

681 :NAME IS NULL:2018/02/14(水) 02:50:36.19 ID:kUpzGWTP.net
>>674
根本的にリレーショナルデータベースを分かってないのになぜ知ったかぶりをするのか?

リレーショナルデータベースは重い処理をしてるんだぞ?

リレーショナルデータベースの内部処理が見えないから、自分のしょぼいプログラムと比較にならないことをしていることに気づかない。

682 :NAME IS NULL:2018/02/14(水) 02:53:40.84 ID:kUpzGWTP.net
>>674
そもそもあんたの用語がおかしい。データベースを知らないと思う。データベースを使うのが精一杯で、リレーショナルデータベースの構造も知らないと思われる。

クエリキャッシュなんて言葉はデータベースエンジニアは使わない。

683 :NAME IS NULL:2018/02/14(水) 03:07:54.32 ID:kUpzGWTP.net
>>674
同じ結果でもいつも速いわけではない。統計情報の取得タイミング、データの傾向の変化で実行プランが最適にならない可能性もあれば、コストが高くても速いこともある。

バッファキャッシュの有無、データファイル読み書きタイミング、速度、OSのキャッシュ、ストレージのキャッシュ、ありとあらゆる条件で性能は決まるのであって、そのなかからどう処理されているかのSQL Serverの情報を元にSQL Serverが言っている処理情報の誤りまで判断して決めることだ。

684 :NAME IS NULL:2018/02/14(水) 07:51:44.92 ID:???.net
定期的にわくよね。当たり前の一般論をすごいことのように語るID付いてるおっさん。

685 :NAME IS NULL:2018/02/14(水) 07:55:04.82 ID:???.net
>>683
すごいね。疲れない?

686 :NAME IS NULL:2018/02/14(水) 10:24:40.03 ID:4BYcg5RC.net
>>678
ありがとうございました。やってみます。

687 :NAME IS NULL:2018/02/14(水) 17:50:15.79 ID:gGA+OaqX.net
【2.14】   環 境 破 壊 の 日   ≪バレンタインデーは必要?≫  チョコを配るって何  【CO2】
http://rosie.5ch.net/test/read.cgi/liveplus/1518571383/l50

688 :NAME IS NULL:2018/02/14(水) 18:45:38.91 ID:???.net
>>680
知らなかった。今度からmaster もバックアップする

689 :NAME IS NULL:2018/02/14(水) 20:48:54.39 ID:???.net
masterリストアするのは簡単じゃないから、再生成するスクリプト作って流すほうが楽かもよ

690 :NAME IS NULL:2018/02/15(木) 18:22:36.56 ID:YBD93ntd.net
質問です。
顧客テーブルと売上テーブルがあり、顧客IDで紐付いています。
特定の条件の売上が無い(売上テーブルにレコードが存在しない)顧客のみを抽出するには、どのような方法が考えられるでしょうか?

仮テーブルに顧客テーブルの全レコードをコピーし「特定の条件の売上が有る」顧客を削除していく、という方法は思いつきましたが、SQL文のみで実現する方法はあるでしょうか?

無いものは抽出できない、とは思うのですが…

691 :NAME IS NULL:2018/02/15(木) 18:56:53.86 ID:???.net
>>690
LEFT JOIN

スレチじゃね?

692 :NAME IS NULL:2018/02/15(木) 19:10:24.66 ID:L39WhMJw.net
>>690
自ら吐いた言霊に呪われとるやんw

無いのは売上
抽出するのは顧客

な?

693 :NAME IS NULL:2018/02/15(木) 21:10:45.04 ID:???.net
SELECT * FROM 顧客テーブル
WHERE NOT 顧客ID IN (SELECT 顧客ID FROM 売上テーブル)

みたいな風かな

694 :NAME IS NULL:2018/02/15(木) 21:23:39.60 ID:???.net
>>693
そういうINの使い方は悪手だよ
NOT EXISTSかLEFT JOINを使おう

695 :NAME IS NULL:2018/02/15(木) 21:23:57.09 ID:???.net
>>690
>>691で答え出てるけどないものを抽出するんじゃなくて、「売上に紐付かない顧客」を抽出するってこと

696 :NAME IS NULL:2018/02/15(木) 21:31:33.97 ID:???.net
>>695
そういうJOINの使い方は悪手だよ
NOT EXISTSを使おう

697 :NAME IS NULL:2018/02/15(木) 21:40:30.01 ID:???.net
exists は確かにわかりやすい記述だけど遅い
大量のデータで使うとサーバーが唸る
できるならinner joinでやったほうがいい
http://kkoudev.github.io/blog/2013/09/14/sql/

698 :NAME IS NULL:2018/02/15(木) 23:18:27.60 ID:???.net
>>697
NOT EXISTSをINNER JOINにするのは無理だし
MySQLはNested Loopしか使えないからね
他の一般的RDBとは事情が違うよ

699 :NAME IS NULL:2018/02/15(木) 23:21:53.94 ID:???.net
>>696
NOT EXISTSのほうがパフォーマンスいいことのほうが多いけど
LEFT JOINが悪手ってわけでもないと思うけどな

少なくとも質問者はLEFT JOINを理解してない風なので
そっちからはじめたほうがいい

700 :689:2018/02/16(金) 00:03:31.60 ID:???.net
みなさまありがとうございます。
LEFT JOINでできるとは思いませんでした…頭が硬いですね。
教えていただいたNOT EXISTSも調べたところまさにやりたいことでした。
何とかなりそうです。
ありがとうございました。

701 :NAME IS NULL:2018/02/16(金) 00:31:27.89 ID:???.net
>>696
環境、データ、インデックスとかによって違うからお前さんみたいに盲信してるのが一番ヤバイ

702 :NAME IS NULL:2018/02/16(金) 01:49:40.19 ID:nepixz1J.net
経験上LEFT JOIN でIS NULLのほうが速い場合がほとんど

703 :NAME IS NULL:2018/02/16(金) 02:02:09.86 ID:???.net
パフォーマンス気にするなら計測すればいい
>>701の言うように状況によって結果は変わる
https://sqlperformance.com/2012/12/t-sql-queries/left-anti-semi-join

704 :NAME IS NULL:2018/02/16(金) 05:41:07.18 ID:???.net
>>693さんみたいな書き方を良くするんですが、これは遅いのですか?

705 :NAME IS NULL:2018/02/16(金) 05:43:00.22 ID:???.net
あっ、ただ自分の場合は

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

ではなく

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

と書きます。

706 :NAME IS NULL:2018/02/16(金) 10:17:03.78 ID:???.net
売上げテーブルに顧客IDでインデックス貼ってあればそんなに遅くない気もする

707 :NAME IS NULL:2018/02/16(金) 10:51:09.70 ID:???.net
692は自分だけど、後でみなさん言われるとおり

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

のほうが速そうだな

708 :NAME IS NULL:2018/02/16(金) 12:21:10.95 ID:???.net
速いとか遅いとか気にしたいんならDBが適切にメンテされているかを考えるべきやな
SQLの表記のゆれなど考えるだけ無意味

709 :NAME IS NULL:2018/02/16(金) 15:52:24.98 ID:???.net
NOT INの場合はパフォーマンス以前に
顧客IDがNOT NULLじゃないと意図した結果が得られない可能性がある

NOT NULLなら意図した結果が得られるけど、速度はDBの最適化に依存
INの最適化レベルが高いDBならNOT EXISTSと同程度の速度に場合もある
でもそうならない場合もあるからこういうケースでは基本使わない

710 :NAME IS NULL:2018/02/16(金) 16:42:30.61 ID:G4Vvw6Lg.net
【アマルガム】水銀を歯に? 厚労省『暴動が怖い』
http://mao.5ch.net/test/read.cgi/doctor/1517058870/l50
【ペットフード】告発したら3人組に棍棒で襲われた
http://egg.5ch.net/test/read.cgi/hosp/1517110484/l50
【マンモグラフィー】おっぱい挟んで癌検査…必要?
http://egg.5ch.net/test/read.cgi/bio/1517115639/l50

711 :NAME IS NULL:2018/02/16(金) 20:39:05.84 ID:yNJxj2Lb.net
>>701
環境、データ、インデックスとかによって違うからお前さんみたいに
テストした環境でLEFT JOINが速いからLEFT JOINにしてしまう奴が一番ヤバイ

712 :NAME IS NULL:2018/02/16(金) 20:59:00.37 ID:???.net
>>711
うまい返ししたつもりなんだろうけどアホ晒してるだけやぞww

713 :NAME IS NULL:2018/02/16(金) 21:08:47.07 ID:yNJxj2Lb.net
>>712
普通に答えただけだけどうまかったか?w
マジかwセンスあんな俺www

714 :NAME IS NULL:2018/02/16(金) 21:32:20.04 ID:???.net
誰か試してみてよ

715 :NAME IS NULL:2018/02/16(金) 21:53:09.91 ID:???.net
単純なnot inならouter joinと同じ実行計画吐いたきがする

716 :NAME IS NULL:2018/02/16(金) 22:16:06.50 ID:yNJxj2Lb.net
>>715
だからたまたまその時その環境でそういう実行プランが作られたという経験を
後生大事に今生の知識として胸にしまいこんでも無駄だと言っておろうが

SQLはいつだってよりシンプルにより直接的にやりたい事を表現してる様に書くべきなんや

717 :NAME IS NULL:2018/02/16(金) 23:37:28.84 ID:???.net
>>713
誰もうまい返しとは言ってないぞ
日本語の理解力もないとな w

718 :NAME IS NULL:2018/02/17(土) 00:10:23.40 ID:RRaJ3TQN.net
>>717
は?こっちこそお前がうまい返しと言ったとは言っとらんが???
異次元の理解力だなお前…
というかアスペだなwww

719 :NAME IS NULL:2018/02/17(土) 00:12:55.27 ID:???.net
ここもID強制表示にしてほしいな

720 :NAME IS NULL:2018/02/17(土) 00:21:22.92 ID:???.net
>>718
> というかアスペだなwww
自己紹介乙w

721 :NAME IS NULL:2018/02/17(土) 15:34:21.57 ID:lIYg2W3z.net
5chはROM専みたいな筆不精は、長文が書かれていると、時間をかけて書いていると思い込む。

世の中、超速で読み書きができる人間がいるのだよ。

722 :NAME IS NULL:2018/02/17(土) 16:12:56.45 ID:???.net
コピペの達人

723 :NAME IS NULL:2018/02/17(土) 16:15:51.02 ID:???.net
>>721
いきなりどうした?

724 :NAME IS NULL:2018/02/18(日) 01:31:05.23 ID:JhkmGsBQ.net
>>722
オリジナルです

725 :NAME IS NULL:2018/02/18(日) 01:32:48.22 ID:JhkmGsBQ.net
仕事でやってるなら仕事が異常に速いひとを知ってるはずだけどな。並の人間の20倍、30倍くらい仕事が速い人もいる。

726 :NAME IS NULL:2018/02/19(月) 05:02:12.33 ID:???.net
1.5人月で見積もられた仕事を1日で片付ける人か。
さすがにそれは見たことないわw

727 :NAME IS NULL:2018/02/19(月) 12:21:33.79 ID:???.net
めちゃくちゃキーボード打つの速そう

728 :NAME IS NULL:2018/02/19(月) 19:22:31.89 ID:???.net
30人にやらせれば余裕で1日で終わるというのに

729 :NAME IS NULL:2018/02/19(月) 19:45:21.08 ID:???.net
>>727
そんな思考だから仕事遅いんだよ
できる人できない人の違いすら理解できてない

730 :NAME IS NULL:2018/02/19(月) 20:26:20.69 ID:???.net
だな
キーボード打つ速度とかマジ関係ない

731 :NAME IS NULL:2018/02/19(月) 20:33:52.86 ID:md3NX5hc.net
仮に1.5人月のコードを5000行とすると
1日でそれ書いて、さらに仕様書とかも書いてテストもするんやで?
めちゃくちゃ打つの速いやん

732 :NAME IS NULL:2018/02/19(月) 20:40:21.60 ID:???.net
今どき行数で考えるなよ

733 :NAME IS NULL:2018/02/19(月) 20:55:39.42 ID:md3NX5hc.net
>>732
何で考えても書く行数は変わらんのだけどw

734 :NAME IS NULL:2018/02/19(月) 21:14:39.42 ID:???.net
無能な働き者の手による大量の無駄なコードは有能な怠け者の手による洗練された短いコードに劣る

735 :NAME IS NULL:2018/02/19(月) 22:24:25.26 ID:md3NX5hc.net
な?具体的に数字だされると速いやろw

736 :NAME IS NULL:2018/02/19(月) 23:38:27.02 ID:???.net
>>733
724が言ってるような並の人間より仕事が20倍30倍速いやつってのは
並の人間が5000行書かないと実現出来ない処理を200行程度書くだけで実現したりできるわけ
キーボードだってできるだけ打たなくていい方法を考える

見積もり時に書く行数がほぼ固定されてるような仕事してるなら
できるだけそこから早く抜け出すことだな

737 :NAME IS NULL:2018/02/20(火) 07:11:59.70 ID:D0Bn3/BK.net
>>736
それコードが圧縮されとるだけやんwコードゴルフかw
コードは20倍圧縮されても作業にかかる時間は速くなっとらんでそれwww

738 :NAME IS NULL:2018/02/20(火) 07:20:13.02 ID:???.net
典型的な無能の発想だな

739 :NAME IS NULL:2018/02/20(火) 08:05:15.51 ID:oDlAdTII.net
お前らはどうしてスキルないくせに突飛な主張してマウントとりたがるんや?
俺は笑えるからこうして楽しんどるけど一般的にはみっともないだけやでw

740 :NAME IS NULL:2018/02/20(火) 14:51:54.91 ID:???.net
どれだけ優秀な人間だろうと、1.5人月で見積もった仕事を1日で片付けたらな
そもそもの見積もりがぼったくりすぎるだけだな

741 :NAME IS NULL:2018/02/20(火) 17:42:37.73 ID:???.net
>>737
コードを圧縮て
斜め上の発想だね

742 :NAME IS NULL:2018/02/20(火) 17:49:18.93 ID:???.net
メタプログラミングやコードジェネレーションを考えればいいと思うよ
できるやつは無駄を省いて機械に仕事をさせる
Paul GrahamのLispの話と同じ

743 :NAME IS NULL:2018/03/03(土) 09:21:09.95 ID:???.net
新進気鋭の「グラフデータベース」って用途が思いつかないな

744 :NAME IS NULL:2018/03/03(土) 16:40:26.84 ID:???.net
RDBはグラフと相性悪いからな
用途が思いつかないうちは使う必要ない

745 :NAME IS NULL:2018/03/03(土) 19:29:07.99 ID:???.net
ビッグデータ()とかバズりたい奴向けやろ

746 :NAME IS NULL:2018/03/03(土) 21:51:50.18 ID:???.net
一昔前の技術で言えば多次元DBと同じようなもん
RDBみたいにあらゆる所で使われる技術ではない

747 :NAME IS NULL:2018/03/03(土) 21:52:38.80 ID:???.net
グラフデータベース=ビッグデータ()
とか言ってると恥ずかしいよ

748 :NAME IS NULL:2018/03/04(日) 01:22:04.38 ID:elOR/YZE.net
何年前の話題やねんw

749 :NAME IS NULL:2018/03/06(火) 20:30:45.91 ID:Y3UcuCKK.net
間違えて全データ消してしまったんですが
ldf/mdfファイルから消す直前のデータに戻す方法ってありますか?

750 :NAME IS NULL:2018/03/06(火) 22:48:19.99 ID:???.net
バックアップあるなら戻せばいいじゃん?
リカバリモデルにもよるけど

751 :NAME IS NULL:2018/03/07(水) 00:02:46.51 ID:/Gdd1MyZ.net
bakファイルがなくてldf/mdfファイルだけの状態です

752 :NAME IS NULL:2018/03/07(水) 00:20:24.26 ID:???.net
何を消してどういう状態のldf/mdfからデータを戻したいかによるよ
この辺でも読んで対処して
https://docs.microsoft.com/ja-jp/sql/relational-databases/backup-restore/restore-a-sql-server-database-to-a-point-in-time-full-recovery-model

よく分からなければチャリーンと
https://www.apexsql.com/sql_tools_recover.aspx

753 :NAME IS NULL:2018/03/13(火) 12:58:28.97 ID:jwO7/+7T.net
2017 Expressへ32bit windows7接続出来ますか?

754 :NAME IS NULL:2018/03/13(火) 17:08:26.50 ID:???.net
できますよ

755 :NAME IS NULL:2018/03/14(水) 07:45:47.09 ID:znnrpK8K.net
ありがとうございました。
WINDOWS認証ですが18456エラーが出ます、あとLOGを見ると明示的に指定されたデータベースを開けませんでした。
とあります、何が悪いのでしょうか?
今までは2005 EXPRESSでした。

756 :NAME IS NULL:2018/03/14(水) 13:40:26.89 ID:???.net
何時のVerからかは忘れたが、今はマシン名\インスタンス名の形式で指定してやらんと繋がらない
例えばlocalhost\SQLEXPRESS

757 :NAME IS NULL:2018/03/14(水) 15:02:13.68 ID:znnrpK8K.net
>>756そうですか?試してみます、ありがとうございました。

758 :NAME IS NULL:2018/03/14(水) 19:11:25.05 ID:???.net
>>755
そのエラーコード以外に状態コードが出てるでしょ
それ込みでググればだいたい原因分かるよ

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

メッセージから推測するとPermissionに問題ないなら
そのログインに指定されてるDefault Databaseがないんじゃないのかな?
存在するデータベースを指定してみれば切り分けできる

759 :NAME IS NULL:2018/03/23(金) 16:35:09.86 ID:???.net
SQL Server 2017 Express の localdb のみをインストールし、コマンドプロンプトから
sqllocaldb start MSSQLLocalDB
として開始しようとすると、
「プロシージャ エントリ ポイント BCryptKeyDerivation がダイナミック リンク ライブラリ bcrypt.dll から見つかりませんでした。」
と出て失敗します。
対処方法はありますか? Windows7 64bit です。
SQLServer2017構成マネージャーにも何も出てこないし、
SQL Server Management Studio で (localdb)\MSSQLLocalDB としても接続できず困っています。

760 :NAME IS NULL:2018/03/23(金) 19:35:56.34 ID:???.net
>>759
bcrypt.dllでググったらこんなんでましたけど
https://answers.microsoft.com/en-us/windows/forum/all/bcryptdll-missing-after-automatic-c-drive-check/0a3fe612-c2ae-429f-9564-83dffb4ca28b

761 :NAME IS NULL:2018/03/23(金) 21:28:54.62 ID:???.net
>>760 ありがとうございます。

bcrypt.dll ファイル自体は system32 と SysWOW64 のどちらのフォルダにも存在しています。
SQL Server 2017 Express は、そもそも Windows7 はサポート外で、ただし localdb だけならいける、と
いうことなのでやってみたけど、やっぱダメなのか・・
SQL Server Management Studio をちょっと勉強したかったのだが。

762 :NAME IS NULL:2018/03/24(土) 10:11:24.87 ID:???.net
>>761
「ただしlocaldbだけなら〜」はどこからの情報なのか

763 :NAME IS NULL:2018/03/24(土) 14:01:15.39 ID:???.net
>>762
これです→ http://diy-kagu.hatenablog.com/entry/2017/08/09/155801
記事は2016だけど、2017でも大丈夫だろうと。
自分の環境特有の理由かもしれない。
もう少しやってみてダメなら 2017 をアンインストールして 2016 で再度やってみる。
SQLの勉強でなくて、SQL Server Management Studio を勉強したい。

764 :NAME IS NULL:2018/03/24(土) 15:27:07.88 ID:???.net
普通に2014じゃだめなのか?
https://www.microsoft.com/ja-jp/download/details.aspx?id=42299

765 :NAME IS NULL:2018/03/26(月) 10:12:43.42 ID:???.net
>>764 ありがとうございます。
2017バージョンの localDB と SSMS をアンインストール後、
2014バージョンの localDB と SSMS を入れ、SSMS から接続までできました。
これで SSMS の勉強ができます。

766 :NAME IS NULL:2018/03/27(火) 21:04:57.51 ID:???.net
SQL Server 2016 expressで特定のテーブルのアクセスが異常に遅いのですが、何か原因はありますか?

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

プログラムでDBに接続側がタイムアウトになるくらい何かが起きているようです。

767 :NAME IS NULL:2018/03/28(水) 13:15:59.84 ID:???.net
そら主キーなかったら遅いだろ

768 :NAME IS NULL:2018/04/17(火) 14:13:45.26 ID:???.net
sp_who2 をすると、サーバーに繋ぎに来てるコンピュータ名やプログラム名が見れますが
ドメインユーザー名を取得することできませんか。

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

Windows認証だったら判別つくのですが、プログラムはSQL認証で使いたいです。
(ユーザーがもし SSMS で繋ぎにきたときにテーブル全開示になっちゃうのを防ぐため)

769 :NAME IS NULL:2018/04/17(火) 19:10:39.61 ID:???.net
できません

770 :NAME IS NULL:2018/04/19(木) 12:38:19.26 ID:???.net
>>766
俺、そのケースで散々パフォーマンスチューニングだのインデックス再構築だの設計変更だのしてたが、
最終的なオチはExpressのデータファイルの10GB制限に引っかかっててインデックス検索で1MB単位で容量の削除、自動拡張を繰り返してた、
というケースがあった。
今でも当時のことを思い出すと赤面するぐらい恥ずかしい思い出。

771 :NAME IS NULL:2018/04/19(木) 23:59:08.45 ID:???.net
自動拡張はともかく、容量の削除ってなんだ?

772 :NAME IS NULL:2018/04/20(金) 00:29:36.06 ID:???.net
>>771
インサートで限界を突破して自動拡張が停止
→ロールバックされて容量が元に戻る
→ギリギリ容量が残ってるので自動拡張が…
以下、タイムアウトするまで(あるいは何とか入りきるまで)延々繰り返し

みたいな(ちょっと詳細省いたけど

773 :NAME IS NULL:2018/04/21(土) 11:37:33.55 ID:???.net
自動拡張されたデータファイルのサイズはロールバックしても自動的に縮小されたりしなかったと思うんがだが
自動拡張に出来なくて空きがないならエラーで帰ってくるから、タイムアウトまで延々待たされるなんて事も無かったと思うけど

774 :NAME IS NULL:2018/04/26(木) 11:10:07.49 ID:aPEXgwUk.net
これしよ
https://goo.gl/SdbNg6

775 :NAME IS NULL:2018/05/03(木) 17:13:22.69 ID:???.net
SQL Server の参考書でいいやつってどれ?
SQL の文法解説じゃなくて、SQL Server 独特の文化とか、SSMS の操作法とか、そのあたりを学びたい。

776 :NAME IS NULL:2018/05/03(木) 18:24:13.53 ID:aGiZKSfN.net
>>775
公式DLの自習書シリーズが最強だと思う
ボリュームが多いが参考書臭さがなく実務より

777 :NAME IS NULL:2018/05/03(木) 18:25:55.90 ID:aGiZKSfN.net
>>775
公式DLの自習書シリーズが最強だと思う
ボリュームが多いが参考書臭さがなく実務より

778 :NAME IS NULL:2018/05/03(木) 19:44:18.01 ID:03ggByZ2.net
>>775
あまりない。そこがSQL Serverの厳しいところ。

779 :NAME IS NULL:2018/05/03(木) 22:41:41.95 ID:???.net
>>776 おお! 無料でこんなのあるんだ、ありがとう!
>>778 オラクルよりもマイナーなのかな?

780 :NAME IS NULL:2018/05/03(木) 23:43:56.18 ID:brE82I5/.net
>>779
自習書は日本マイクロソフトが日本の会社に作らせたもの。

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

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

Management StudioについてはどのRDBMSより経験がなくても直感的にわかりやすい。

781 :NAME IS NULL:2018/05/04(金) 01:38:57.38 ID:l3Y7dHLE.net
>>775
SQL Server 2005、2008以降は大きく変わっていないから、特に翔泳社の本は役に立つよ。

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

秀和システムの赤い本もひどい。

782 :NAME IS NULL:2018/05/04(金) 08:19:21.05 ID:???.net
>>780
なんで翻訳物に手を出すの?

783 :NAME IS NULL:2018/05/04(金) 09:42:04.84 ID:l3Y7dHLE.net
>>782


784 :NAME IS NULL:2018/05/04(金) 10:54:05.67 ID:???.net
>>783
>マイクロソフトはどの製品も作りっぱなしでマニュアルは自動翻訳のよくわからないものばかり。

785 :NAME IS NULL:2018/05/04(金) 13:58:18.36 ID:l3Y7dHLE.net
>>784
マイクロソフトのサイトを見たことがないの?

786 :NAME IS NULL:2018/05/04(金) 14:04:11.53 ID:???.net
>>785
ごめんね自動翻訳なんて見ないんだ

787 :NAME IS NULL:2018/05/04(金) 14:04:44.52 ID:???.net
>>785
英語読めないのかい?

788 :NAME IS NULL:2018/05/04(金) 15:59:47.61 ID:???.net
M$日本の公式ドキュメントは「これは自動翻訳で生成されました」だらけなんだが
>>786はggrもしないらしい

789 :NAME IS NULL:2018/05/04(金) 16:06:01.60 ID:???.net
>>788
英語のドキュメント読むに決まってんだろ何言ってんの?

790 :NAME IS NULL:2018/05/04(金) 16:12:20.05 ID:???.net
>>788
ググった結果英語のドキュメントが出てこない世界に住んでるんだねすごいね

791 :NAME IS NULL:2018/05/04(金) 20:10:03.98 ID:???.net
789の世界のgoogleは日本語の結果のみ表示ができないらしい

792 :NAME IS NULL:2018/05/04(金) 22:23:50.48 ID:l3Y7dHLE.net
その英語もひどいから意味がない。

793 :NAME IS NULL:2018/05/05(土) 11:00:57.91 ID:???.net
>>792
どうひどいの?

794 :NAME IS NULL:2018/05/05(土) 17:00:07.44 ID:T1SL703t.net
>>793
ユーザーにわからせようとはしてない。外国人は基本的に不親切だから、この説明でわからない方が悪いというスタンス。

795 :NAME IS NULL:2018/05/09(水) 13:40:31.08 ID:f5JaP2Hu.net
https://onnasyakai.com/uwasazuki-na-hito/

796 :NAME IS NULL:2018/05/10(木) 20:41:14.88 ID:7P381X6c.net
自動拡張されたデータを削除してもファイルサイズが大きいままなのですがどうすればサイズを小さくできますか?

797 :NAME IS NULL:2018/05/10(木) 20:48:55.39 ID:???.net
まずバックアップします

798 :NAME IS NULL:2018/05/12(土) 00:31:47.87 ID:???.net
DBCC SHRINKFILE

799 :NAME IS NULL:2018/05/12(土) 00:44:55.12 ID:hux6qi0J.net
>>796ですがみなさん方法をご存知ないですか?
それとも削除した後からでは小さく出来ませんか?

800 :NAME IS NULL:2018/05/12(土) 07:22:09.07 ID:???.net
共同ツール 1
https://seleck.cc/685

https://trello.com/
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
ttp://www.kikakulabo.com/service-eft/
trelloのオープンソースあり

共同ツール 2
https://www.google.com/intl/ja_jp/sheets/about/

共同ツール 3
https://slack.com/intl/ja-jp
https://www.dropbox.com/ja/
https://bitbucket.org/
https://ja.atlassian.com/software/sourcetree
https://sketchapp.com/extensions/plugins/
ttp://photoshopvip.net/103903

ttps://goodpatch.com/blog/sketch-plugins/

801 :NAME IS NULL:2018/05/13(日) 00:56:54.94 ID:S1zmRzPe.net
最新のManagement studioが64bit OSしか
サポートしてないんだが、いったいマイクロソフトはどういうつもりなんだろう?
Linuxのサポートよりよっぽど大事だろう?

802 :NAME IS NULL:2018/05/13(日) 01:55:14.27 ID:NO/7QD/0.net
>>801
それSQL Server本体とセットではないManagement Studioではないのか?

803 :NAME IS NULL:2018/05/13(日) 02:43:17.16 ID:???.net
>>801
それで何か困るの?

804 :NAME IS NULL:2018/05/13(日) 08:22:29.07 ID:???.net
>>801
> サポートしてないんだが、いったいマイクロソフトはどういうつもりなんだろう?
32bit OS でグダグダ言うクレーマーの相手はしませんと言う意思表示だろ

805 :NAME IS NULL:2018/05/13(日) 10:17:13.68 ID:aUXovNI8.net
今32bitOSって動いてる?

806 :NAME IS NULL:2018/05/13(日) 10:31:18.97 ID:???.net
>>805
会社で動いてるよ(Windows 7)
もうすぐ廃棄するけど

807 :NAME IS NULL:2018/05/13(日) 13:04:14.54 ID:aUXovNI8.net
>>806
win7にSQLを入れてDBサーバーとして使ってる訳じゃないでしょ?

808 :NAME IS NULL:2018/05/13(日) 13:20:15.30 ID:???.net
>>807
Visual Studio 入れてるから LocalDB 入ってるけど?
まあテスト用だけどね

809 :NAME IS NULL:2018/05/19(土) 23:07:16.55 ID:rrEES1bxs
クライアントPCなんて
32bitのwin7まだまだ残ってるだろう。
プログラムの開発機も。

810 :NAME IS NULL:2018/05/25(金) 22:14:21.62 ID:???.net
非力なマシンだと、SSMSが重くてつらい

811 :NAME IS NULL:2018/05/25(金) 22:29:57.73 ID:???.net
>>810
32bit切り捨てたしね

812 :NAME IS NULL:2018/05/25(金) 23:21:04.44 ID:???.net
立ち上がりきったらそう遅くねーけどな
立ち上げがVisualStudioより遅せーのはアホかと思うが

813 :NAME IS NULL:2018/05/25(金) 23:24:30.32 ID:TatbyLnb.net
たぶん若いやつだと思うが、起動に時間がかかるなら、それを考慮して起動中はべつのことをしてろよw

814 :NAME IS NULL:2018/05/25(金) 23:53:50.76 ID:Z93MyXqj.net
ほなシコっとってもええんか?シコるで?

815 :NAME IS NULL:2018/05/26(土) 00:43:38.25 ID:bRsNkwI2.net
>>810
起動もだが、実行中のプランを見るヤツとか、
重すぎてまともに動かない。
ロック状況見るヤツも無くなっちゃったし、
糞化がハンパない。

816 :NAME IS NULL:2018/05/27(日) 14:40:12.20 ID:???.net
個人でexpress以外使ってる人いる?

817 :NAME IS NULL:2018/05/27(日) 15:48:44.54 ID:Lqhm87aC.net
>>816
個人ってどーいう事?
そんな奴おらんだろ?

818 :NAME IS NULL:2018/05/27(日) 16:07:16.20 ID:8hLmukSL.net
>>817
まれにいるだろ。

819 :NAME IS NULL:2018/05/27(日) 17:32:39.64 ID:???.net
>>816
Developer Editionならいるんじゃね

820 :NAME IS NULL:2018/05/27(日) 17:42:19.92 ID:???.net
Win10Proで2017Developer使ってるよ

821 :NAME IS NULL:2018/05/27(日) 17:57:50.42 ID:???.net
ExpressやDeveloperとかの無償版がなきゃ泣く泣くStandard買う奴もいるんだろうけど個人ユースならExpressで充分って言う人がほとんどだろうしなぁ

822 :NAME IS NULL:2018/05/29(火) 09:13:12.99 ID:???.net
中小でも社内で完結させられるならExpressで十分だしな。同時接続の人数によるが。
サイズオーバーしてもDB分ければいいし。

823 :NAME IS NULL:2018/05/29(火) 12:18:56.63 ID:7/O8R114.net
企業でexpressはほぼほぼライセンス違反とちゃうんか?
知らんけど

824 :NAME IS NULL:2018/05/29(火) 13:25:46.38 ID:???.net
expressは商用おkやぞ
ダメなのはDeveloper

825 :NAME IS NULL:2018/05/29(火) 16:56:50.03 ID:???.net
クライアントOSでやるとそっちのライセンスに引っかかるけどな

826 :NAME IS NULL:2018/05/29(火) 21:13:04.30 ID:???.net
>>823, >>825
アホすぎ、100年ROMっとけ

827 :NAME IS NULL:2018/05/29(火) 21:20:02.44 ID:Ay/YE4Sk.net
>>825
おまえのせいでアホにアホって言われてもうたわ
どう責任とってくれんねん

828 :NAME IS NULL:2018/06/07(木) 09:07:37.80 ID:???.net
https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt?view=sql-server-2017

829 :NAME IS NULL:2018/06/16(土) 13:18:37.96 ID:???.net
bcp って評価はどうなの?

830 :NAME IS NULL:2018/06/16(土) 18:31:45.50 ID:UP0xR2sD.net
>>829
未だにダブルクォートとかの囲み文字付きファイルや改行入りが処理できない駄目ツール
(SSISではできるのに)
パフォーマンスはそこそこ。
あなたの評価は?

831 :NAME IS NULL:2018/06/16(土) 23:26:28.39 ID:???.net
SQL Server PowerShellってどうなの?

832 :NAME IS NULL:2018/06/17(日) 00:38:22.75 ID:DF4YrmFv.net
>>830
SSISも勝手にやられてしまう仕様が多くて使いづらいけどな。

833 :NAME IS NULL:2018/06/21(木) 09:34:01.43 ID:???.net
セッションの確認の事で教えてください。

物理的に別々の2つのサーバにそれぞれSQL Sever 2005が入っています。
それぞれの現在のセッション数を調べたく、以下のSQL文を実行するアプリを作りました。

select hostname, count(*) from master..sysprocesses where hostname != '' group by hostname

一方のSQL Serverはうまくセッションを取得できたのですが、もう一方の方は自分のアプリ分のセッションしか見えてきません。
SQL Serverの方の設定とか関係してるのでしょうか?他の方法でもいいのですが、うまくセッションの状態を調べる方法があれば教えてください。

ちなみに接続文字列は以下でアクセスしています。
Data Source=xx;Initial Catalog=DvtReport;Persist Security Info=True;User ID=xx;Password=xx;Pooling=false;

834 :NAME IS NULL:2018/06/21(木) 13:35:19.88 ID:???.net
普通に考えて、そのログインの権限が違うんだろ

835 :NAME IS NULL:2018/06/21(木) 14:04:47.96 ID:???.net
>>834
ありがとうございました。見えました。
アホな質問ですみませんでした。

836 :NAME IS NULL:2018/06/23(土) 15:02:34.02 ID:???.net
一般的に接続の作成、開放はコストが高いと言うけど、この場合のコストって何?
クライアントから見た時間は当然として、サーバー側はどんなコストがかかるの?やっぱりその間の処理が重くなるとかあるのかな?

837 :NAME IS NULL:2018/06/23(土) 15:16:13.35 ID:tpSzsfc7.net
>>836


838 :NAME IS NULL:2018/06/23(土) 17:02:33.78 ID:???.net
コスト=負荷と思っとけ
接続口を作るのはOSとやり取りするからけっこう大変な処理

839 :NAME IS NULL:2018/06/23(土) 21:08:58.69 ID:???.net
>>836
サーバはリソース(CPUとメモリ)
クライアントは時間

840 :NAME IS NULL:2018/06/23(土) 21:40:32.04 ID:???.net
>>838 >>839
例えば常時だいたい100くらいセッションがプールされてるとして、新たに100のクライアントが増える場合、サーバーにとって100プールが増えるのと増加100分は毎回接続、開放してもらうのと、どっちがいいかな?

841 :NAME IS NULL:2018/06/23(土) 22:29:07.38 ID:???.net
そもそもサーバは接続プールとかしてるのかね
プールしてるならなおさら、クライアントは毎回解放してもらわんとプールが有効に使えないわけだが

842 :NAME IS NULL:2018/06/23(土) 22:30:11.62 ID:???.net
そもそもサーバは接続プールとかしてるのかね
プールしてるならなおさら、クライアントは毎回解放してもらわんとプールが有効に使えないわけだが

843 :NAME IS NULL:2018/06/23(土) 22:46:40.47 ID:???.net
>>840
プールはクライアント側の実装だからサーバにとっては単に長時間の接続でしかない
サーバが許容する上限を超えるまではプールしたほうが良いことが多いが、
限界をこえるようなら毎回接続開放するしかない
クライアントの数が多いとか、接続毎のクエリ発行頻度が低い場合は
プールせずにこまめに切断したほうが良いこともある

844 :NAME IS NULL:2018/06/24(日) 10:15:42.74 ID:???.net
SSMS の軽量版、簡易版を出してほしい。
DB管理者向け機能を省略し、一般ユーザ向けのバージョン。

845 :NAME IS NULL:2018/06/24(日) 10:24:36.26 ID:???.net
SSMS に一般ユーザーが使う機能なんてあるか?

846 :NAME IS NULL:2018/06/24(日) 13:04:29.63 ID:???.net
え?SSMSって一般ユーザがSQL投げて問合せするツールじゃないの?

847 :NAME IS NULL:2018/06/24(日) 13:31:19.84 ID:???.net
テーブル間にリレーション定義してあって着目セルがリンク対象だったとき
右クリとかでリンク先の該当テーブル表示、みたいなところまでやってもらいたいところだ

848 :NAME IS NULL:2018/06/24(日) 13:51:04.78 ID:???.net
リレーションシップなんて飾りです 偉い人にはそれがわからんのですよ

849 :NAME IS NULL:2018/06/24(日) 13:54:29.71 ID:???.net
SQL投げてる時点で一般ユーザーじゃねーだろ

850 :NAME IS NULL:2018/06/24(日) 14:01:00.27 ID:???.net
>>844
一般ユーザとは?

851 :NAME IS NULL:2018/06/24(日) 17:14:17.60 ID:???.net
SQL分からんようなやつに直接触らせるDBはねーよ

852 :NAME IS NULL:2018/06/24(日) 17:16:02.63 ID:???.net
おまえに食わせるSQLはねぇ!

853 :NAME IS NULL:2018/06/24(日) 19:11:03.77 ID:???.net
ssmsの悪い所は
オブジェクトエクスプローラがテーブルやプロシージャ含めて全てツリー表示している所だな
増えてくるとスクロールが大変。
それからテーブルやビューを見るとき次々タブが増えてどれ修正していたのかわからなくなる

SIオブジェクトプラザという有料のツールだとそこら変うまく出来てる
データベースをまたぐ依存関係もわかる
だけど高いのと時々固まるのでおすすめできない

854 :NAME IS NULL:2018/06/24(日) 19:40:37.73 ID:???.net
>>853
>次々タブが増えて

JaneStyleみたいにタブが横方向に表示しきれなくなるたびに縦方向に1段増やすようにして欲しいね

855 :NAME IS NULL:2018/06/24(日) 23:23:46.74 ID:???.net
昔はエンドユーザーがSQLを投げていた。あな恐ろしや

856 :NAME IS NULL:2018/06/30(土) 10:49:48.52 ID:???.net
bcp はデータのインポート、エクスポートが主目的。
sqlcmd は SSMS の簡易なCUI版アプリケーション。オラクルでいうところの sqlplus。

っていう位置づけでよろしいか。

857 :NAME IS NULL:2018/07/01(日) 13:16:46.05 ID:iOtlwpag.net
>>856
bcpはOracle Databaseで言えばSQL*Loaderにあたるもの。

858 :NAME IS NULL:2018/07/04(水) 22:27:52.09 ID:???.net
最近は、mssql-cli というのもあるね

859 :NAME IS NULL:2018/07/08(日) 22:24:33.92 ID:???.net
>>856
どっちも不便だからsqlps使うといいよ

860 :NAME IS NULL:2018/07/11(水) 01:23:22.13 ID:???.net
>>855
select権限だけなんだから好きにしろって話だろw

861 :NAME IS NULL:2018/07/12(木) 12:54:12.43 ID:/YTA8M6s.net
【上流きどり、都民″】 マ7トLーヤ『大洪水は都会人の弱者切捨ての結果、大地震は核爆発の結果』
http://rosie.5ch.net/test/read.cgi/liveplus/1531363082/l50


豪雨のどさくさにカジノ法案強行、火事場泥棒!

862 :NAME IS NULL:2018/07/12(木) 21:34:55.74 ID:RO0MxO/p.net
一日に数件のレコード(数百文字くらい)が新規に追加されるDBなのだが、
追加されたタイミングで自分宛てに通知メールを送ったり出来ますか?
メール本文には追加されたテキストデータが有れば尚良し。

863 :NAME IS NULL:2018/07/13(金) 19:38:57.79 ID:???.net
前のSQL Mail 今はデータベースメールって言うらしい でメール送信はできる

トリガー仕込んでやればできるんじゃね

864 :NAME IS NULL:2018/07/14(土) 00:07:50.29 ID:aYAJ4wRd.net
>>863
ありがとござんした。

865 :拡散を全国へ:2018/07/19(木) 14:40:25.89
名古屋アベック殺人犯の 犯人の 男
株式会社エコス 面接官の男
神奈川県 平塚市 明石町10-3 浜田平塚ビル5階
私達 県庁職員全員で 全国に 一斉に 送信し続けています 被害者が 後を 絶たない

866 :NAME IS NULL:2018/07/20(金) 18:14:47.36 ID:???.net
プロシージャでSELECTの結果を返してるんですが、INFORMATION_SCHEMAなどで、何個のSELECT結果を返してるかを、調べる方法はありませんか?
やっぱり、実行しないと厳しいですかね

867 :NAME IS NULL:2018/07/21(土) 13:29:57.03 ID:???.net
何個のSELECT結果ってどういうことだ

868 :NAME IS NULL:2018/07/21(土) 14:37:14.53 ID:???.net
プロシージャ内で
select * from table1
select * from table2
と書くと2つのSELECT結果が返ってくると思うんですが、いくつのSELECT結果が返ってくるかが知りたいです。
この場合、2つです。
ちなみに、.netを使ってます

869 :NAME IS NULL:2018/07/21(土) 16:44:00.45 ID:???.net
はっきりいって、それを知る意味がわからん。

870 :NAME IS NULL:2018/07/21(土) 17:10:38.16 ID:???.net
プロシジャってのが何を指してるかわからんが
そのSQLが静的なら、そのSQL見ればわかるし
動的に生成してるなら、動的に生成するロジックでわかるとおもうが

871 :NAME IS NULL:2018/07/21(土) 17:17:54.97 ID:???.net
複数 レコードセット
でググれ

872 :NAME IS NULL:2018/07/21(土) 17:26:51.48 ID:???.net
「俺が必要な機能が用意されてないのはおかしい」って思ってる奴が定期的に湧いてくる不思議

873 :NAME IS NULL:2018/07/21(土) 18:39:30.83 ID:OaX/dGdR.net
>>868
やってみればとりあえず分かるだろうに。

874 :NAME IS NULL:2018/07/21(土) 19:12:18.09 ID:???.net
Oracleだと、パラメータのRefcursorの数でわかるんですが、SqlServerでは分からないんですね

875 :NAME IS NULL:2018/07/21(土) 19:35:43.12 ID:???.net
>>874
パラメタで返すならパラメタ見れば同じようにわかるけど?

結果セットで複数返したときならクライアント側ライブラリの話だが
ADO.NETのスレってなかったっけ?
ざっと見た感じではNextResultで自分で数えないとダメっぽいなぁ

876 :NAME IS NULL:2018/07/21(土) 20:42:46.11 ID:???.net
>>875
SqlServerにはCursorの引数ないから、実際に実行するしかなさそうですね
ありがとうございました。

877 :NAME IS NULL:2018/07/22(日) 00:56:34.48 ID:???.net
いやSQL Sevrerでもカーソル引数にできたはずだが、と思って調べたが
できるけど、T-SQLからしか呼べないのか

つか引数で指定するってことは、ストアド作成時に数は決まってるわけだが

878 :NAME IS NULL:2018/07/22(日) 01:03:32.64 ID:???.net
いやSQL Sevrerでもカーソル引数にできたはずだが、と思って調べたが
できるけど、T-SQLからしか呼べないのか

つか引数で指定するってことは、ストアド作成時に数は決まってるわけだが

879 :NAME IS NULL:2018/07/25(水) 10:18:39.05 ID:dCc9syc1.net
OS:Windows server 2008R2
DB:SQL server 2008R2

で動くアプリケーションソフトがあります。

これを、以下の環境にDBを移行しました。

OS:Windows server 2012R2
DB:SQL server 2016

CPU、メモリ数、HDDなどハードウェアの条件は全く同一なのに、
アプリケーションからのデータの閲覧、検索、修正、上書き
などの動きが見違えるほど速くなりました。

SQL server のバージョンが新しくなった効果でしょうか?

880 :NAME IS NULL:2018/07/25(水) 10:41:42.64 ID:???.net
HDD同じって、同じ規格で同じスピードのまったく同一の型番のディスクだよな

逆に今のスピードが本来の性能で、古いほうが遅くなってたと考える方が妥当じゃね

881 :NAME IS NULL:2018/07/25(水) 10:41:43.13 ID:???.net
そうです

882 :NAME IS NULL:2018/07/25(水) 10:58:23.73 ID:dCc9syc1.net
>>880
ハードディスクは全く同じ型番です

現行システムが動いているサーバと全く同じ機種(スペック)のサーバが
存在していて、今回移行テストに使用しています
ハードウェアの条件が同じで、動きがこんなにも違うので、SQL serverが
劇的に改善されているのかなと思いまして

883 :NAME IS NULL:2018/07/25(水) 19:53:09.80 ID:???.net
移行元と先のデータ件数は同じなの?
件数が同等であれば、
物理ファイルの断片化の解消
インデックスおよび統計の更新
等が考えられる。

884 :NAME IS NULL:2018/07/25(水) 20:04:51.15 ID:???.net
どうせインデックスがぐちゃぐちゃになっていたという落ちだろ
インデックスの再構成とかしていたのかだな

885 :NAME IS NULL:2018/07/25(水) 22:13:41.70 ID:dCc9syc1.net
>>883
データ件数は全く同じです
SQL server 2008R2のデータベース完全バックアップを取って、
SQL server 2016に復元し、アプリケーションの接続先データベースを
2016にしただけで動きが速くなりました

>>884
インデックスの再構成、再構築はメンテナンスプランで毎日実行して
いましたが、統計の更新は毎日行う必要ないと開発部から聞いていたので
月1回程度行ってました

886 :NAME IS NULL:2018/07/25(水) 23:43:20.55 ID:???.net
2008と2016だと、エディション同じならそう大きな速度差は出ない気がするけどなぁ
そもそものデータファイルがフラグメントしてたとかじゃないのか
ま、早くなったんならよかったんじゃね

887 :NAME IS NULL:2018/07/26(木) 06:15:55.29 ID:???.net
>>885
2008R2のデータベース完全バックアップを、
2008R2にそのまま復元すれば早くなる可能性大だな

888 :NAME IS NULL:2018/07/26(木) 11:24:28.64 ID:???.net
クエリプランが変わったから速くなったと仮定すると、基数推定のバージョンが変わったことによる可能性もある
検証する余裕があるなら2016のほうにトレースフラグ9481セットして再起動して、旧バージョンで動かしてみるのもありかと

889 :NAME IS NULL:2018/07/26(木) 12:26:11.40 ID:???.net
2008R2ではメモリー制限設定してたのに2016ではディフォルトで使ってるとか
まあ2008R2で調査する気ないんなら
ラッキー、持ってる俺は違うな
とでも思ってりゃいい

890 :NAME IS NULL:2018/07/26(木) 12:48:46.96 ID:???.net
あるいはmaxdop指定してるとかね
テスト用だとその辺デフォルトでやっちゃいかねないからな
で、いざ本番用にとちゃんと設定したらテストの時のパフォがでないっていう

891 :NAME IS NULL:2018/07/26(木) 12:53:31.13 ID:???.net
maxdopで思い出したけど2016ってたしかデフォルト0じゃなくてインストール時にインストーラが設定するんだっけ
あとtempdbも数指定できたよな

892 :NAME IS NULL:2018/07/27(金) 00:55:38.36 ID:???.net
以下のFunctionを作成し
create function dbo.fncA
returns varchar2
as
begin
return 'asdf'
end

以下のsqlで呼ぶと、結果がaとしか返って来ないんですが、asdfと返すにはどうしたら良いでしょうか?
select dbo.fncA()

893 :NAME IS NULL:2018/07/27(金) 04:23:27.78 ID:???.net
SQL Serverにvarchar2なんてないだろ
自分でvarchar (1)とかで定義してるんじゃないのか

894 :NAME IS NULL:2018/07/27(金) 07:33:42.56 ID:???.net
>>892
戻り値に桁数していしないからじゃないかな

895 :NAME IS NULL:2018/07/27(金) 08:27:59.57 ID:???.net
俺も桁数しなきゃ

896 :NAME IS NULL:2018/07/27(金) 15:53:18.16 ID:???.net
SELECT
M.ID
,(SELECT A FROM テーブル値関数(M.ID, M.DATE)) AS A
,(SELECT B FROM テーブル値関数(M.ID, M.DATE)) AS B
,(略)
FROM M
WHERE (略)

こういう風にテーブル値関数を使うと、テーブルM・1行当たり 2回 動いてしまうと思います。
構造体かTUPLE型か、そういう風な概念を使って、効率的に動かす手段はないでしょうか?

897 :NAME IS NULL:2018/07/27(金) 19:43:37.80 ID:???.net
その関数が何してるかしらんが、それテーブル値関数の必要ないんじゃね
関数が2行以上返したら実行時エラー吐くんじゃね

実行時の効率もとめるなら関数じゃなくてビューにしてJOINしろよ
テーブル値関数とでもJOINはできるはずだけどな

898 :NAME IS NULL:2018/07/28(土) 13:20:30.52 ID:tm98Iqt0.net
>>885
そもそもあんたは設定が同じかどうかも確認せずに比較している。

あなたのいう同じは同じではないと思うよ。

899 :NAME IS NULL:2018/08/01(水) 21:41:38.16 ID:???.net
質問なのですが、SQLでファイルの存在まで確認するのは不可能でしょうか?

例えば

SELECT *
FROM T_Anken
WHERE AnkenID = '00123'
AND FileExist('C:\AnkenFile\00123.txt')

みたいなことをしたいんですが、難しいですかね?

900 :NAME IS NULL:2018/08/01(水) 23:25:10.35 ID:???.net
xp_fileexist

901 :NAME IS NULL:2018/08/02(木) 20:55:49.33 ID:???.net
データベースのバックアップを定期的に取りたい、っていう場合、
.mdf ファイルだけバックアップしておけばOK?
SSMSの機能は使わず、ファイルのバックアップという意味で。

あと、巨大な .ldf ファイルがあるんだけど、これ削除してよい?

902 :NAME IS NULL:2018/08/02(木) 22:02:05.14 ID:mcP8wWdh.net
>>901
mdfとldfはセットだ
復旧モデル
BACKUP DATABASE
DBCC SHRINKFILE
とかで検索

903 :NAME IS NULL:2018/08/03(金) 00:13:09.11 ID:???.net
復旧モデル単純にすることからだな
そんな質問するとこからしてトランザクションログから復旧する要件なんてなかろう

904 :NAME IS NULL:2018/08/03(金) 14:34:29.02 ID:???.net
>>902 サンクス。ldf が2GBあるんだよ、これ消したい。

>>903 そうそう。localDB で自分のPC内で遊びでやってるだけ。
でもPCや 保存先のSSD がダメになった時のことを考えて定期的に外部にバックアップ取りたいのよ。

905 :NAME IS NULL:2018/08/03(金) 14:36:16.45 ID:???.net
ログが肥大すんのは復旧モデルが「完全」だからだ「単純」に変えろ

906 :NAME IS NULL:2018/08/03(金) 15:46:02.26 ID:???.net
mdfだけでも保証はされないけど一応復旧できるんだっけ?
サービス停止するかデタッチしないとコピーできんかったと思うし、バックアップとるにもDB複製ふるにも普通にバックアップするほうがお手軽だから忘れちゃった

907 :NAME IS NULL:2018/08/03(金) 21:40:23.92 ID:???.net
>>906
> サービス停止するかデタッチしないとコピーできんかったと思うし
コピーはできるけど役に立たないデータがコピーされるだけ

908 :NAME IS NULL:2018/08/04(土) 03:34:48.90 ID:???.net
「単純」にして毎日夜間バックアップの一週間ローテ(5世代)とかでやってる企業も多いね。

909 :NAME IS NULL:2018/08/04(土) 03:53:35.36 ID:???.net
圧縮あるしサイズ小さけりゃ差分とか考えなくていいからな
うちはたまにテストや確認で○時のときのDBを検証環境に作ってって要望がくるから完全にしてる

910 :NAME IS NULL:2018/08/04(土) 09:49:44.89 ID:???.net
結論としては、

・エクスプローラ上からのファイルコピー等でのDBバックアップは不可
 (ファイルコピーはできるがDBとして復元できない)

でよいの?

911 :NAME IS NULL:2018/08/04(土) 13:14:32.38 ID:???.net
ファイルロックされててコピーも出来ないんじゃ

912 :NAME IS NULL:2018/08/04(土) 13:42:01.94 ID:???.net
>>910
デタッチすればファイルコピー出来るし、コピーしたものを他のSQL Server入ったPCで復元(アタッチ)することも出来る

913 :NAME IS NULL:2018/08/04(土) 20:08:07.47 ID:???.net
VSS使ってMDF,LDF取得はよくしている

914 :NAME IS NULL:2018/08/05(日) 22:49:40.30 ID:???.net
>>910
DB停止状態(コールドバックアップ)なら可能

915 :NAME IS NULL:2018/08/07(火) 20:01:05.52 ID:L4EDfhvX.net
リレーショナルデータベースがそんな単純なものだと思っているやつは、Windowsもファイルのコピーで別のハードディスクに移せると思っているんだろうな。

916 :NAME IS NULL:2018/08/07(火) 20:12:13.66 ID:???.net
パーソナルユースの場合は単純な方が利点が多い

917 :NAME IS NULL:2018/08/07(火) 23:40:21.32 ID:???.net
MSのAccessとか、あと開発とかしたことないけどSQLiteとか、お手軽に使えるのもあるからねえ
そういうのしか知らないとぴんとこないかもな

918 :NAME IS NULL:2018/08/07(火) 23:42:51.55 ID:???.net
>>915
SQLiteやH2知らないの?

919 :NAME IS NULL:2018/08/08(水) 00:39:43.49 ID:???.net
データベースじゃなくてDBMSって言ってほしいがな

920 :NAME IS NULL:2018/08/08(水) 06:18:27.55 ID:???.net
>>917
SQL-Serverだってmdf, ldfをコピーするだけなら大して変わらん
MS-AccessとかSQLiteだって稼働中にコピーしたらガラクタになるのも同じ

921 :NAME IS NULL:2018/08/08(水) 06:20:49.10 ID:???.net
>>919
DBMSはどっちかって言うとSQL-Server本体の方
今の話はデータファイルの方だからDBMSはちょっとピントずれてる

922 :NAME IS NULL:2018/08/09(木) 10:14:10.09 ID:jylyPhQF.net
>>896
クロスアプライしろ

923 :NAME IS NULL:2018/08/11(土) 17:50:53.85 ID:hw5PU5RO.net
>>918
SQLiteとSQL ServerやOracle Databaseを比べるのはおかしい。

自転車とリニアモーターカーが同じだと言っているようなもの。

924 :NAME IS NULL:2018/08/11(土) 18:28:42.16 ID:???.net
>>923
>>915が「リレーショナルデータベース」と言っていることに対するツッコミやろアホか

925 :NAME IS NULL:2018/08/12(日) 01:17:15.53 ID:444bh0X0.net
>>924
RDBMSとリレーショナルデータベースをわざわざ言い分けるのはよほどの専門家同士の話で、同義ととらえるか、むしろRDBMSでは一般人には意味が伝わらないから避ける。

926 :NAME IS NULL:2018/08/12(日) 07:07:04.18 ID:HjxXSimm.net
用語の意味で紛糾する初心者スレ微笑ましいなw

927 :NAME IS NULL:2018/08/12(日) 08:53:10.07 ID:???.net
>>925
日本語が通じてないwww

928 :NAME IS NULL:2018/08/12(日) 18:42:27.62 ID:cfFh3cqu.net
リレーショナルデータベースにかわりがない。リレーショナルデータベースの定義を知らないのか?

929 :NAME IS NULL:2018/08/12(日) 18:43:58.55 ID:cfFh3cqu.net
関係データベースと言わないと調べてもわからないかな?

930 :NAME IS NULL:2018/08/12(日) 18:56:05.94 ID:???.net
なんかまたマウント取りに必死な奴が来たな

931 :NAME IS NULL:2018/08/12(日) 19:03:57.12 ID:???.net
厳密な定義の話は難しいが、データベースファイルをコピーする話ならDBMSのほうが適切じゃないのか?
なんで稼働中にコピーしたらダメなんって問われたらリレーショナルデータベースの「管理」の話になってくるでしょ

932 :NAME IS NULL:2018/08/12(日) 19:46:20.07 ID:???.net
DBMSに限らず内容を書き換えてるファイルをコピーしたら一貫性が保てないのは常識

933 :NAME IS NULL:2018/08/12(日) 21:58:36.58 ID:???.net
それはそうなんだけど、それ言い出したらファイルコピーという一点において、>>915の「リレーショナルデータベースがそんな単純なもの〜」という発言が単純なテキストファイルとどう違うのってことになる
いや、データ更新時のデータ保証まで考えるなら君の言ってることは正しいし、そう言いたいならそれでいいけど

934 :NAME IS NULL:2018/08/12(日) 22:02:25.40 ID:???.net
>>915がおかしいって言いたいだけ
DBMSって言っても単なるアプリケーションソフトウェアだし

935 :NAME IS NULL:2018/08/12(日) 22:26:30.52 ID:???.net
それなら納得

936 :NAME IS NULL:2018/08/12(日) 22:44:09.95 ID:???.net
いま話になってるのはその1アプリケーションのデータファイルの話
それをリレーショナルデータベースの話と言うのはあきらかな間違い

937 :NAME IS NULL:2018/08/12(日) 22:57:18.60 ID:cfFh3cqu.net
>>934
あなたが思っている製品はそんなものだから、そう思っているんでしょう?

Oracle Databaseをよく知っているなら、あなたのような発言はできない。

938 :NAME IS NULL:2018/08/12(日) 22:58:57.47 ID:cfFh3cqu.net
>>933
実際にMySQLはデータファイルがただのファイルだぞ。

Oracle Databaseだったらよほどの知識がないと触ってもいけないどころか、ASM構成だったら触れもしない。

939 :NAME IS NULL:2018/08/12(日) 23:01:10.13 ID:cfFh3cqu.net
>>936
誰がそんなことを書いたのか?どこにも見当たらない。SQLiteにデータベース管理システムがないと言い張ったやつがいただけ。

データベース管理システムのない有名な製品なんて俺はオタクではないので知らない。

940 :NAME IS NULL:2018/08/12(日) 23:09:42.28 ID:cfFh3cqu.net
かたくななまでに自分の非を認めない人というのがいます。何か責任を問われることが起こっても、誰か人のせいにしたり環境のせいにしたりします。

自分に非があることを素直に認められないのはどうしてなのか、その心理にはこんなことが隠されているようです。

https://tabi-labo.com/213871/not-apologize-ppl

941 :NAME IS NULL:2018/08/12(日) 23:13:57.67 ID:???.net
データファイルコピーの話に対して、
リレーショナルデータベースがそんな単純なものだと思っているやつは云々言ってたやつがいたと思ったんだが

942 :NAME IS NULL:2018/08/12(日) 23:15:56.53 ID:???.net
>>937
ん?
普通のサーバーで稼働してるOracleなら単なるアプリケーションだし、稼働中に単にコピーしたら整合性は取れんよ
逆に止まってる状態ならデータファイルコピーで普通にバックアップは取れる
オラクル 物理バックアップ
とかでググってみ

943 :NAME IS NULL:2018/08/12(日) 23:24:16.55 ID:???.net
>>937>>938
Oracleといってる時点でRDBというよりRDBMSの話だろ、自分でいってて気づかないのか?

944 :NAME IS NULL:2018/08/12(日) 23:28:14.09 ID:???.net
>>923
的外れもいいところwww

945 :NAME IS NULL:2018/08/12(日) 23:40:07.12 ID:cfFh3cqu.net
>>943
RDBでRDBMSがないものを挙げてください。きっと答えられませんよね?

946 :NAME IS NULL:2018/08/12(日) 23:42:37.32 ID:???.net
>>945
知らない。なにが該当するの?

947 :NAME IS NULL:2018/08/12(日) 23:43:52.06 ID:cfFh3cqu.net
>>942
Oracle Databaseはシャットダウンしていたとしても、そのままデータファイルのコピーだけでは済みません。

無知にもほどがあるでしょうに。

だいたいRDBMSをただのアプリケーションだと言い放つのは、よほどの素人でしょうが。

948 :NAME IS NULL:2018/08/12(日) 23:47:08.31 ID:cfFh3cqu.net
リレーショナルデータベースとリレーショナルデータベース管理システムが別個というしつこい主張は何がしたいのか?

SQL Serverの場合、別にインストールするManagement Studioならこういう誤解は理解できる。

しかしManagement Studioはただの管理ツールであって、データベース管理システムそのものではない。

949 :NAME IS NULL:2018/08/12(日) 23:50:36.87 ID:???.net
>>948
あたり前だろうが馬鹿かお前は
いうにことかいてManagement Studio出してくるとは思わんかったわ
いいからRDBMSがないRDBあげて

950 :NAME IS NULL:2018/08/12(日) 23:54:03.34 ID:???.net
つまりRDBとRDBMSの区別のつかない人が暴れてるだけか

951 :NAME IS NULL:2018/08/12(日) 23:57:18.90 ID:???.net
もう一回書くけど、まさかこの話の流れでManagement Studio出てくるとはなあ
ここ数年で仕事に関する話で一番度肝抜かれたかもしれん、完敗だわもう

952 :NAME IS NULL:2018/08/13(月) 00:25:35.14 ID:???.net
>>948
機会があるなら、一度サーバーとストレージ全部ぶっ壊れたと想定して外部ディスクやテープにしかないバックアップから全部戻すなんてことやってみればいい
そういうのしてると、勝手さえわかれば所詮そんなものって気付く

953 :NAME IS NULL:2018/08/13(月) 02:28:20.30 ID:???.net
>>947
> Oracle Databaseはシャットダウンしていたとしても、そのままデータファイルのコピーだけでは済みません。
わざわざキーワード書いてあるんだからちゃんとググれよ
http://www.atmarkit.co.jp/ait/spv/0606/30/news130.html

> だいたいRDBMSをただのアプリケーションだと言い放つのは、よほどの素人でしょうが。
よくわかってない人はなぜかコンパイラとかDBMSとかを特別なものとして扱いたがる w
Oracleのインストールとかしたことないでしょ?
単に使うだけならOfficeのインストールとたいして変わらんよ
まあAMSとかRACとか言い出したら設定は死ぬほど面倒だけどな

954 :NAME IS NULL:2018/08/13(月) 08:48:35.11 ID:???.net
>>940
自己紹介w


毎回、レベルの低いところでマウント取ろうとするから、周りと会話が噛み合わなくなることに早く気づきなよ

955 :NAME IS NULL:2018/08/13(月) 15:01:06.64 ID:???.net
RDBMSだからファイルコピーが出来ねえとかガイジか
稼働中はファイルが閉じられとらんのだから出来るわけねえだろアホウが

956 :NAME IS NULL:2018/08/13(月) 17:22:13.38 ID:???.net
>>955
お前はファイル共有モードについて勉強してから出直せ
レベル低すぎる

957 :NAME IS NULL:2018/08/13(月) 17:35:23.75 ID:???.net
リレーショナルデーターベースって
所定の構造のデーターの集合を保持していて、所定の方法で、データーが保存、変更、削除、参照ができるもので良い?
例えば、所定の構造のデータを保持する、Excel bookと保存、変更、削除、参照の手順書とか

958 :NAME IS NULL:2018/08/13(月) 18:10:00.94 ID:???.net
データベースそのものには変更方法等の規定はないし
その特定の構造がリレーショナル形式でなければ「リレーショナル」データベースとは呼べんな

959 :NAME IS NULL:2018/08/13(月) 18:23:34.43 ID:???.net
考えたこともなかったけど、SQL Serverのデータファイルでファイル共有モードとかできるの?
あと思ったけどReadOnlyにしたらコピーできるんかね、やってみるか

960 :NAME IS NULL:2018/08/13(月) 18:32:01.56 ID:???.net
>>956
おめーはファイルバッファについて勉強しろハゲ
ただでさえDBはログキャッシュ持ってるんだ
書き出されてないデータなんぞごまんとあるわハゲ

961 :NAME IS NULL:2018/08/13(月) 18:39:55.80 ID:???.net
>958
Excel表でその様なリレーショナルな構造を作れば、要件を満たしているのですね?

962 :NAME IS NULL:2018/08/13(月) 18:58:12.01 ID:???.net
>>960
コピーできない話はもういいのか? w
バッファーとかキャッシュの話はまた別の話な

963 :NAME IS NULL:2018/08/13(月) 19:07:33.70 ID:???.net
>>962
で? 不完全なファイルコピーできてそれが何だってんだ?
ちったあ頭使えハゲ

964 :NAME IS NULL:2018/08/13(月) 19:14:01.72 ID:???.net
元はなんだっけ?
SSMS使わずにファイルコピーでバックアップしたい→稼動中は無理
って話だっけ?

965 :NAME IS NULL:2018/08/13(月) 19:18:56.52 ID:???.net
>>963
そんなもんはとっくに書かれてる → >>907
周回遅れすぎだろ w

966 :NAME IS NULL:2018/08/13(月) 19:21:23.49 ID:???.net
>>964
そう → >>901
>>915 がバカ晒してグダグダになってるだけ

967 :NAME IS NULL:2018/08/13(月) 19:48:31.25 ID:???.net
俺はRDBMSがないRDBが知りたい

968 :NAME IS NULL:2018/08/13(月) 20:33:16.64 ID:???.net
>>967
まあSQLiteみたいなインプロセスな奴だとデータベース管理システムって言うのはちょっと違和感あるかな

969 :NAME IS NULL:2018/08/14(火) 14:42:25.12 ID:???.net
RDBMSが備えるべき最低限の機能はって話を決めんとな
コンピュータ上で何らかのプログラム使ってリレーショナルなデータ扱ったとき
そのプログラムは全部RDBMSだろって話になるから

まあ、スレ違いだな
別スレ立ててやってくれ

970 :NAME IS NULL:2018/08/14(火) 18:33:08.30 ID:???.net
スレ違いではあるんだが、2年たっても消化できないスレが勢い上位の版でスレたててもなあ

971 :NAME IS NULL:2018/08/14(火) 19:40:31.24 ID:pybELLFA.net
Windows Server 2012上で動いているsql serverのテーブルを同じ
Windows Server 2012上で動いているMySQLのテーブルに毎日一回
コピーしたいんですが、一般的なやり方を教えて下さい。
sql serverで何かそう言うジョブを設定するなど可能でしょか?

972 :NAME IS NULL:2018/08/14(火) 21:38:01.56 ID:???.net
外部アプリ組んだほうが早くね?

973 :NAME IS NULL:2018/08/14(火) 21:57:27.96 ID:???.net
>971
可能

974 :NAME IS NULL:2018/08/14(火) 22:05:49.13 ID:pybELLFA.net
>>972
例えばどんなアプリ?
>>973
どんなジョブを書けば良いの?

975 :NAME IS NULL:2018/08/14(火) 22:58:48.02 ID:f02vD5Is.net
おまいさんのレベルがわからんからまず自分で考えた方法を書こうぜ

976 :NAME IS NULL:2018/08/14(火) 23:02:56.26 ID:???.net
泥臭いがSQLServerからレコード取ってきてMySQLにインサートするアプリってこと
独自列使ってないならダンプでもいけるかもしれん

977 :NAME IS NULL:2018/08/14(火) 23:32:49.39 ID:???.net
SQLServerでファイルに吐き出してMySQLで取り込む
昔から使われてて少なくとも一般的なのは確実
同じサーバ上にたててるくらいだからデータ量なんてたかが知れてるだろうし、レコードで処理するよりファイルでやればすぐ終わって差分とか気にする必要もないだろう

978 :NAME IS NULL:2018/08/14(火) 23:41:47.39 ID:???.net
MySQLへDBリンク張れないか

979 :NAME IS NULL:2018/08/14(火) 23:56:56.71 ID:???.net
MySQL用のプロバイダあるね
これでいけるんじゃないの

980 :NAME IS NULL:2018/08/14(火) 23:58:25.98 ID:???.net
>>974
アプリと言うか
MySQLへリンクサーバー設定して
drop table MySQLTable
select ... into MySQLTable …
みたいなSQLを発行するコード書いてタスクスケジューラとかで定期的に起動すればいいかと

981 :NAME IS NULL:2018/08/15(水) 06:54:18.99 ID:+ZQR96PU.net
>>980
試してみます。
皆さんありがとうございました。

982 :NAME IS NULL:2018/08/15(水) 14:30:53.82 ID:???.net
アプリ作るならSSIS使えばいいんじゃね?

983 :NAME IS NULL:2018/08/16(木) 16:36:17.93 ID:???.net
プロシージャの引数で型のサイズを省略したいのですが、何かいい方法はありませんでしょうか?
テーブルの列のサイズとプロシージャの引数のサイズの同期を取るのが煩雑で…
Oracleみたいなテーブルの型を参照出来れば一番いいんですけどね。

984 :NAME IS NULL:2018/08/16(木) 17:42:16.07 ID:tStV8vZM.net
>>983
Trunsaction-SQLはかなり古い言語使用なので無理に何かするようになるなら、普通にパラメータとして受けとった方がいい。

TYPEデータベースオブジェクトを作成して、それデータ型をプロシージャに渡せばできるかも知れないが、私はやったことがないので、わからない。

985 :NAME IS NULL:2018/08/16(木) 20:24:01.85 ID:???.net
>>983
昔関わってたシステムは列名ごとにユーザー定義データ型を作ってた
ユーザー定義データ型を作る手間はかかるが、コード書くときに列名だけしっとけば桁長意識しなくていい(桁間違いのバグ防ぐため)から

986 :NAME IS NULL:2018/08/17(金) 10:12:51.17 ID:???.net
>>984
>>985
ありがとうございます
やっぱり、そういう仕組みは存在しないんですね
全部の引数のサイズに最大の文字数を指定しちゃうのはどうなんでしょうか?

987 :NAME IS NULL:2018/08/17(金) 19:24:07.68 ID:MmEfgYU6.net
>>986
文字型ならmaxで良いが、小数点ありの数値型だと最大って何?ってなるな

988 :NAME IS NULL:2018/08/17(金) 21:51:14.57 ID:???.net
>>987
numericは省略可みたいでした

989 :NAME IS NULL:2018/08/17(金) 22:35:56.42 ID:MmEfgYU6.net
>>988
numericで桁数省略すると小数以下が0になるけどいいの?

990 :NAME IS NULL:2018/08/17(金) 22:36:41.66 ID:???.net
省略したら規定の桁数になるだけで、そんなことを言ったらvarcharだって省略可能だぜ

991 :NAME IS NULL:2018/08/17(金) 23:36:49.22 ID:???.net
>>989
え?そうなんですか!
それはまずいです…
どうしよ…

992 :NAME IS NULL:2018/08/18(土) 09:58:35.71 ID:U2DosSCL.net
>>987
文字列型のmaxはLOB型になってしまうのでまったくおすすめできない。

993 :NAME IS NULL:2018/08/18(土) 12:30:01.99 ID:???.net
最適解はないんですか?

994 :NAME IS NULL:2018/08/18(土) 16:29:02.97 ID:kk7emstq.net
【ハロワよりボランティア】 高齢ニートの尾畠春夫さんが子供を救出、安倍は内心穏やかではないだろう
http://rosie.5ch.net/test/read.cgi/liveplus/1534557759/l50

995 :NAME IS NULL:2018/08/18(土) 22:55:52.30 ID:e9X2ExZT.net
>>992
LOB型なんてsqlserver には無いんだけど・・

996 :NAME IS NULL:2018/08/19(日) 19:29:10.06 ID:???.net
>>995
LOB=Large OBject
ラージオブジェクト データ型でぐぐりなされ

997 :NAME IS NULL:2018/08/19(日) 19:44:51.72 ID:???.net
>>996
ググった結果出してみそ

998 :NAME IS NULL:2018/08/19(日) 20:49:48.71 ID:???.net
貼ろうとしたらエラーくらったのよ
前もあったけどシステム的な単語いれると弾かれる
てかぐぐったらJDBCとかが上にヒットするなすまん
データ型のところ見てたら出てくるよ
ただ、ストアドの引数に使って何のデメリットがあるのかは知らん、LOB型がないってあったから書いただけ

999 :NAME IS NULL:2018/08/19(日) 20:51:04.65 ID:???.net
次スレたてるよー

1000 :NAME IS NULL:2018/08/19(日) 20:53:50.84 ID:???.net
ほい

Microsoft SQL Server 総合スレ 12
http://mevius.5ch.net/test/read.cgi/db/1534679537/

1001 :NAME IS NULL:2018/08/19(日) 21:16:50.59 ID:???.net
>>998
それSQL-Serverの型ちゃうで

1002 :NAME IS NULL:2018/08/19(日) 21:17:09.39 ID:???.net
>>1000


1003 :NAME IS NULL:2018/08/19(日) 21:18:10.36 ID:???.net
>>996
お前は何を言ってるんだ?

1004 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1004
258 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★