■ このスレッドは過去ログ倉庫に格納されています
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
マジで言ってるのかアレだなあ...
▪️エディション確認
・繋いだインスタンスを右クリックでプロパティ
・masrerデータベースで
select @@version
▪️バックアップ
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 ★