2ch勢いランキング アーカイブ

Microsoft SQL Server 総合スレ 11 [無断転載禁止]©2ch.net


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

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

過去スレとかめんどいから誰か適当に貼って
NAME IS NULL [sage] 2016/05/29(日) 17:26:44.26ID:???
・過去スレ

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

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

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

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

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

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

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

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

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

MS SQL Server 総合スレ2
ttp://pc11.2ch.net/test/read.cgi/db/1093012583/
NAME IS NULL [sage] 2016/05/29(日) 23:40:39.48ID:???
おつ
あぼーん [あぼーん] あぼーん
あぼーん
NAME IS NULL [sage] 2016/05/30(月) 03:37:26.75ID:???
こういう異常者を切る眼力を持つ物が人事をやってる
さすがMSw
NAME IS NULL [sage] 2016/06/02(木) 14:04:22.59ID:???
せっかくなのでVS2015スレから転載

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

公開されたぞ

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

リリース日: 2016/6/1
ファイル名: ja_sql_server_2016_developer_x64_dvd_8778351.iso
言語: Japanese
SHA1: 3FACA4CB652E6209376B3843274C573E8161659B
NAME IS NULL [sage] 2016/06/03(金) 09:13:02.76ID:???
SQL Server Management Studioは間に合わなかったの?
preview版(英語)をダウンロードするようになってるんだが
NAME IS NULL [sage] 2016/06/04(土) 00:55:23.99ID:???
ssmsで完全バックアップを取りたいのですが保存先がサーバ側(リモート)ディレクトリしか指定できないようです
リモートに保存したあとコピーするなどではなく、直接ローカルに保存したいのですが可能でしょうか?
NAME IS NULL [sage] 2016/06/04(土) 03:00:44.85ID:???

DBMSの話で普通、ローカルとかリモートとかってのはサーバ(DB)側からみての話だと思うが

BACKUP DATABASE コマンドでUNCパスが指定できるから、ネットワーク共有ファイルに保存はできるはず
ただし、サーバサービスを動かしてるアカウントに権限が必要だが
NAME IS NULL [sage] 2016/06/04(土) 05:02:11.59ID:???

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

バックアップデータがネットワークを介さずにクライアント端末に瞬間移動する機能を期待しているの?
NAME IS NULL [sage] 2016/06/04(土) 16:36:44.54ID:???
bcpにフォーマットファイル作成するオプションがあるが
NAME IS NULL [sage] 2016/06/04(土) 17:21:12.34ID:???

瞬間移動?
mysqldump的なことです
NAME IS NULL [sage] 2016/06/04(土) 22:31:57.05ID:???

サーバ上にあるデータベースのデータをクライアント側にバックアップしたい。でもネットワークは経由したくない。

って話じゃないの?
NAME IS NULL [sage] 2016/06/05(日) 00:12:16.34ID:???

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

UNCで指定っていってるんだから、ネットワークドライブとしてマウントする必要ないでしょ。

CIFS使うことがいやな理由は?
NAME IS NULL [sage] 2016/06/05(日) 01:28:17.97ID:???
設定が分からないとか面倒とかでは。。

SSMS を動かしているクライアント上に、SSMS が直接バックアップファイルを作成できるか?
ってことなら 不可 でいいんだよね?
NAME IS NULL [sage] 2016/06/05(日) 01:36:16.56ID:???

失礼
会社の鯖なんで共有の設定できないです

>設定が分からないとか面倒とかでは。。
会社の鯖なんで弄れないです
やっぱ無理なんすね
ダメだなsqlserver
NAME IS NULL [sage] 2016/06/05(日) 01:44:06.11ID:???

共有の設定するのはクライアント(端末)側でしょ?
NAME IS NULL [sage] 2016/06/05(日) 01:47:06.28ID:???

そうなんですか!
windows無知すぎて恥ずかしい…
ありがとうございます!
NAME IS NULL [sage] 2016/06/05(日) 03:14:58.13ID:???
そもそもバックアップはDB管理者のタスクで、一般ユーザーのタスクじゃないから

クライアント側にデータ吐きたいだけならBCPで良いだろ
サーバの設定変えられんとか、アカウント変更できんとネットワーク共有使えん可能性が高いんだが
NAME IS NULL [sage] 2016/06/05(日) 03:49:38.85ID:???

私はDBAではないです
bcpはddl吐けないですよね?
データのコピーならbcpで十分なのはわかってます
NAME IS NULL [sage] 2016/06/05(日) 14:14:34.93ID:???
そもそもなんのためにそんなことしようとしてるんだろう。
NAME IS NULL [sage] 2016/06/05(日) 17:20:39.46ID:???
ddlは吐かないがレイアウト定義は出力できる
ddlを吐いても、一般ユーザーにテーブル作成する権限があるとは限らんし

ホント、なんのためにddl付きのデータが欲しいんだ
NAME IS NULL [sage] 2016/06/05(日) 18:08:24.46ID:???

>ddlを吐いても、一般ユーザーにテーブル作成する権限があるとは限らんし
>ホント、なんのためにddl付きのデータが欲しいんだ

そこは気にしなくていいです
ただmysqldumpと同じ機能がないことにショック
NAME IS NULL [sage] 2016/06/05(日) 19:03:54.03ID:???
だからバックアップはDB管理者の仕事だって言ってるだろ
クライアントにバックアップ保存するようなコンセプトじゃないんだよ
NAME IS NULL [sage] 2016/06/05(日) 19:28:34.21ID:???
(不正アクセスを試みてるようにしか見えない件)
NAME IS NULL [sage] 2016/06/05(日) 21:34:55.90ID:???

無理です
SQL-Server にはそう言う機能がないので MySQL でも使ってて下さい

で、終了でしょ
NAME IS NULL [sage] 2016/06/06(月) 10:14:44.31ID:???

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

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

インメモリのテーブルにレプリケーションのハブリッシュテーブル指定できないとか対応しとけよMSのあほー
使えそうと思ったのに
NAME IS NULL [sage] 2016/06/11(土) 05:32:54.64ID:???

> という認識でいる。
終わった話題に間違ったこと書くアホ w
NAME IS NULL [] 2016/06/11(土) 06:03:14.50:bjKxFQNF
SQL server2012について、
コンピュータ名の変更が必要となっています。
すでにセットアップ済み、実行中のものなんですが、
コンピュータ名の変更を行うとSQL serverにログインできなくると見聞きしています。

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

まだ試してはいないのですが、他に必要な作業というのはあるのでしょうか?
また、ログインできなくる原因というのはSQL serverが管理している情報で、旧コンピュータ名のものがあるからという認識なのですが、それがどれほどあるかがわかりません。
NAME IS NULL [sage] 2016/06/11(土) 18:17:16.27ID:???
>ログインできなくる原因というのはSQL serverが管理している情報で、旧コンピュータ名のものがあるから
接続できなくなる理由はほとんどクライアント側だと思うが
すくなくともDBサーバー側ではそこに書いてある通りだろ
あとはBrowserとかリスナとかのサーバ側でもネットワーク設定の問題か
NAME IS NULL [sage] 2016/06/11(土) 20:35:00.54ID:???
SQLServer の資格情報がホスト名付きでシステム系のテーブルに格納されてるから、それを変更しないと。
ってのならやった記憶がなくもないような。

詳細は全く覚えてない。すまん。
NAME IS NULL [sage] 2016/06/11(土) 22:24:07.06ID:???
windows認証のログイン、ユーザーがだめじゃ?
あぼーん [あぼーん] あぼーん
あぼーん
NAME IS NULL [sage] 2016/06/12(日) 10:21:57.95ID:???

ありがとうございます。
browserとはsql server browserの事を指しているのでしょうか?
sql server browserとなると正直触れたことも無いので…
sql server 2012上での作業はのみということでしょうか?

あと、sqlに対して行うサーバー名の変更作業は、実際サーバー名を変更する前に行った方が良いのでしょう?
コマンドプロンプトからsqlcmdでも出来そうには思うのですが、リスク軽減的にどちらが良いのかもう一つ分かりません。
何度も質問してすみません。
NAME IS NULL [sage] 2016/06/12(日) 22:13:07.91ID:???
リスク軽減なら、ぶっ壊れても最悪再インストールすればいい検証環境で手順確立するのが一番
システムDBのバックアップリストアや再作製のやり方も練習する
システムの構築手順を確認する、最悪の場合に備えて再構築するための時間を確保する

かなあ。
express落とすか、developerかmsdnあるならそれつかって自分のPCで試してみればいい。
システム構成もホスト名変更する背景もわからんから具体的なアドバイス難しい
NAME IS NULL [sage] 2016/06/13(月) 07:34:56.62ID:???
サーバー名の変更だけならそれで良いはず
規定のインスタンス使ってない場合はよくわからない
Windows人称でないなら問題も出なさそう
NAME IS NULL [] 2016/06/14(火) 11:06:11.28:nfKm+RL8
DBのバッチ系の処理がおそいおそいと文句言われる
HDをSSDに替えてアッと言わせてやろうと思うけど効果ありますか?
ちなみにSQLServer2008無印
現在の構成はRAID5でログのみミラーリング
NAME IS NULL [sage] 2016/06/14(火) 11:28:04.69ID:???
効果ありそうだけどSSDの損耗が早くてアッと言われそう
NAME IS NULL [sage] 2016/06/14(火) 11:42:31.63ID:???

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

効果的なチューニングにはウイークポイントの調査が必要です。
複数あるバッチのどれが長時間かかるのか、バッチのSQLのうち長時間かかるのはどれか(1回の時間x回数)

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

サーバのハードウェアRAID書き込みキャッシュがON(ライトバック)になっているかも確認する(シスコのやつはバッテリー付きモデルなのに標準がOFFだった。)
NAME IS NULL [sage] 2016/06/14(火) 12:32:58.70ID:???
エンタープライズを使っている場合はテーブルの圧縮を行うのも有効です。
ほとんど欠点なく、スループットが上がります。
NAME IS NULL [sage] 2016/06/14(火) 18:01:50.33ID:???

いつの時代だよ
NAME IS NULL [sage] 2016/06/14(火) 18:09:47.00ID:???

ttp://xn--ssd-j73b1ca4z.com/ssd_jumyou/
40 [] 2016/06/14(火) 19:47:31.92:nfKm+RL8
みなさん、ありがとん!

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

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


印メモリは予算的にむりだし2008がサポート切れまでこき使ってやるつもり。
NAME IS NULL [sage] 2016/06/14(火) 21:14:21.36ID:???
bcp等で巨大なデータを書き込む際にキー有りテーブルに書くのではなく、キーなしに書いて後からキーをつけた方が早くなります。
ただ、一時的にテーブルサイズが倍になる(alter tableすると内部でテーブルがコピーされるから)弊害がでます。

うちではbcpに6時間かかってたやつが3時間になったよ
NAME IS NULL [sage] 2016/06/14(火) 21:51:18.49ID:???
処理の仕方にもよるけど、cpuのクロック高いのにするとか
うちが扱ってる製品がそうで、10コアoverとかようつかわん
E7-4000番台に3Ghz超える4、6コアのcpu欲しい
インテルさんお願い
NAME IS NULL [sage] 2016/06/15(水) 03:10:15.39ID:???
ネックがどこにあるかわからんのにどうこう言ってもなぁ
NAME IS NULL [sage] 2016/06/15(水) 10:25:45.59ID:???

> バッチは毎日、毎時とそれぞれ数千〜数万件をBCPやインポート機能+カーソル処理でおこないますから
> かきこみ相当あるかも(汗)
それは、コードがボトルネックだな
ハードウェアを増強しても、5分が4分とかになるくらいだろ
コードを書き直せば、5分が30秒とかになるだろうな
NAME IS NULL [sage] 2016/06/15(水) 11:19:21.43ID:???
1回のinsert or update or deleteが20msくらい×5万回=1,000秒=16分ちょい
とかになってるのかな
NAME IS NULL [sage] 2016/06/24(金) 18:37:55.65ID:???
sql server 2014 expressで
nvarchar(100)のカラムにハングル文字を書いて読み取ったら文字化けしました。
Server Management Studioで確認しても文字化けして
????と成ってます。
ネット情報では文字列の前にNプレフィックスを付ける必要があるとの事ですが、
そういう作業をせずに、DBの既定の言語をUTF-8に設定するみたいなのは出来ないのでしょうか?
既定の言語はSJISらしいですが、本当でしょうか?
NAME IS NULL [sage] 2016/06/24(金) 19:05:09.27ID:???
言語と文字コードは別物なんだが
NAME IS NULL [sage] 2016/06/24(金) 19:47:40.07ID:???
そもそもOSの言語が何で、サーバ/クライアントの言語が何かわからんが

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

データベースの既定の照合順序はALTER DATABASEで変えられるけど
データベース作り直す方が良いと思うぞ
NAME IS NULL [sage] 2016/06/24(金) 22:04:59.14ID:???

とりあえず全部のカラムにNを付けたら解決しました。
nvarchar型以外のカラムにもNを付けたのですが問題ありますか?
試した限りでは問題なさそうなのですが。
Win7とWindows Server 2012R2です。
NAME IS NULL [sage] 2016/06/28(火) 20:13:35.33ID:???
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
NAME IS NULL [sage] 2016/06/28(火) 21:55:27.98ID:???
MSDN見てみたらWindows7が要件から抜けてるぞ
ms143506
NAME IS NULL [sage] 2016/06/29(水) 00:04:24.72ID:???

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

速そうなマシンだな
NAME IS NULL [sage] 2016/07/14(木) 19:37:36.25ID:???
SqlServer2014ExpressSP1の64bitを使っていて、
サービスの自動起動がされるときと、されないときがあるんですが、何かわかりますか?

手動で開始、停止を繰り返しても特に問題は起きず、
自動起動しなかったときに手動起動を行うことも問題なく出来ます。
サービスの自動遅延開始など試してみましたが、効果はありませんでした。
OSはWindows7ProfessionalのSP1です。
NAME IS NULL [sage] 2016/07/14(木) 19:54:43.49ID:???
エラーログやOSのイベントログぐらい確認できないのかよ
NAME IS NULL [sage] 2016/07/14(木) 20:08:25.71ID:???

SqlServerのエラーログには何も吐き出されてなかったのですが、
OSのイベントログは見ていませんでした。そちらから調べてみます。
NAME IS NULL [sage] 2016/07/14(木) 20:44:06.60ID:???
SQL Server (MSSQLSERVER) サービスの接続を待機中にタイムアウト (30000 ミリ秒) になりました。
と出力されていたので、タイムアウトの時間を60000ミリ秒に設定してみました。
これで発生しなくなるかはまだわかりませんが、しばらく様子を見てみます。


ありがとうございました。
NAME IS NULL [sage] 2016/07/15(金) 15:38:03.93ID:???
そもそも30秒で起動できないような環境が正しいか検証するべきじゃね
NAME IS NULL [sage] 2016/07/19(火) 20:15:06.96ID:???
2014 management studioで
TRUNCATE TABLE
でデータを削除してしまったのだが、UNDOは出来るの?
至急おしえてくれ。
NAME IS NULL [sage] 2016/07/19(火) 21:07:50.03ID:???
UNDOが何の事を指してるか分かりませんが、できません
バックアップから回復して下さい
NAME IS NULL [sage] 2016/07/19(火) 21:53:59.19ID:???

バックアップはどこにある?
自動バックアップがあるの?
NAME IS NULL [sage] 2016/07/19(火) 22:54:30.26ID:???
自分でバックアップを取ってないなら諦めてください
NAME IS NULL [sage] 2016/07/19(火) 22:58:58.63ID:???
完全復旧モデルなら、今からバックアップ取って日時指定でリカバリできる気がする
NAME IS NULL [sage] 2016/07/19(火) 23:19:18.82ID:???
潔く諦めるか、そこだけ何故か震度7に襲われたことにするか、ついうっかり硫酸をこぼしてしまうか 天狗の仕業にするか  様々な手はある
もしくはこれから徹夜で手入力し続けて、明朝やつれきってゲッソリした顔で上司を迎えて同情を買うか
まぁ、買ってはくれないだろうけれども  楽になりたいなら、びっくりするほどユートピア!を社員の前でお披露目するしかないだろうことは想像に難くない
NAME IS NULL [sage] 2016/07/20(水) 05:46:49.52ID:???
>>完全復旧モデル
何よそれ。
NAME IS NULL [sage] 2016/07/27(水) 08:28:47.24ID:???
SQL Server 2012 SP3 をダウンロードしたいんだけどダウンロードセンターからダウンロードできない。

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

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

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

と、Chromeで試しながら書いていたらChromeではダウンロードファイルの選択ダイアログが出て、
ダウンロード開始することができた。ロサキネンシス!
NAME IS NULL [] 2016/07/30(土) 13:19:55.39:yq4MDUYW
sqlserverからaccessのデータへ接続したいのですが
以下のページを参考にすると

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

「Microsoft Jet 4.0 OLE DB Provider」というものが必要みたいなんですが
私のsqlserverには表示されていません。
どこかで手に入れてインストールしておく必要があるんでしょうか?
どなたか教えてください
NAME IS NULL [sage] 2016/07/30(土) 13:27:13.61ID:???
SQL鯖がx64だったら無理と思う
NAME IS NULL [] 2016/07/30(土) 13:40:24.20:yq4MDUYW

やっぱりそうなんですね
何とかaccessからデータ抽出する方法ってないでしょうか?
32bit版のsqlserverをインストールすればいけますか?
NAME IS NULL [sage] 2016/07/30(土) 14:23:20.08ID:???
Access側にSQL鯖へのリンク張って、そこで転送するとか
NAME IS NULL [sage] 2016/07/30(土) 15:31:32.98ID:???

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

accessからSQLServerにリンクテーブル張るのが楽な王道じゃないかな
NAME IS NULL [sage] 2016/07/30(土) 18:47:00.13ID:???
リンク貼る時何選べばよかとよ?
native clientとか分からん選択肢が一杯出て来るけん
NAME IS NULL [sage] 2016/09/06(火) 09:56:12.52ID:???
SSMS2016でATOKが使えないんだが・・・
Win7x86
NAME IS NULL [sage] 2016/09/07(水) 15:49:03.33ID:???
アプリの表示件数と実データの件数が合わないらしいから調べろと言われ
指示されたテーブルのフィールドを見たら泣きたくなった

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

自分で関数作るか解析専用の外部スクリプト作るしかないのか?
NAME IS NULL [sage] 2016/09/09(金) 03:01:08.50ID:???

ちょっと思ったんだが、CSV型みたいなCLRのユーザ定義型を自分で作ってみるとかどうだろう
NAME IS NULL [sage] 2016/09/09(金) 10:59:36.31ID:???

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

まず読み込む件数によると思うが
NAME IS NULL [sage] 2016/10/08(土) 02:21:43.32ID:???

数件〜数万件くらいです。状況によって変わります。
NAME IS NULL [sage] 2016/10/08(土) 05:22:55.16ID:???

上限が数万なら一気読みでいいかと
将来的にもっと増えるかもならループかな
NAME IS NULL [sage] 2016/10/08(土) 06:31:28.05ID:???

数が増えるとループのほうが良いのですか?
なぜですか?
NAME IS NULL [sage] 2016/10/19(水) 17:17:06.51ID:???
MySQLのREPLACE INTOに相当するコマンドはありますか?
NAME IS NULL [] 2016/10/21(金) 18:43:10.14:9/r7lXFV
すみません、ご教示ください。
応研の給与大臣を使用していて、カスタマーサポートの指示に従いデータを復旧していたのですが、
以下の互換性コンポーネントをインストールするようダイアログが出ました。


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 パッケージで良いものかわからなかったもので。
NAME IS NULL [sage] 2016/10/21(金) 19:31:32.02ID:???

ベンダーなりメーカーなりに聞けよ
NAME IS NULL [sage] 2016/10/22(土) 10:43:18.11ID:???

無い。mysqlの方が進んでいる
NAME IS NULL [sage] 2016/10/23(日) 02:01:53.42ID:???
mergeで全項目上書きでいいんじゃね

そもそもdeleteしてinserすれば良いだけで
ちゃんとしたトランザクションをサポートするDBMSでreplaceの必要性がわからんが
NAME IS NULL [sage] 2016/10/24(月) 02:54:50.86ID:???
生SQLだと0秒なのに、ストアド内に書くと35秒とか、
似たような悩みはググるといっぱい出てくるんだけど、どれ見ても解決してない様子

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

全く同じ内容なのに実行プランが違うわけないじゃん
もしかして有償サポート増やすために仕組んでる?
NAME IS NULL [sage] 2016/10/24(月) 03:10:48.55ID:???
mysqlやpostgreはいくら便利な命令があっても、スピードが遅いから単純なことにしか使えない
しかしまあ、t-sqlはお硬いやね
お硬いから速いのかもしれんが
GREATEST、LEASTぐらいは付けてもいいような
NAME IS NULL [sage] 2016/10/24(月) 03:29:06.99ID:???
SQLが同じでも実行計画が同じになるとは限らん
ストアドの実行計画は実行時に決定されるとは限らん

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

この程度の判断が自分でできないなら素直にどっかの業者に頼んだほうがいいんじゃね
NAME IS NULL [sage] 2016/10/24(月) 03:31:07.95ID:???

全く同一の内容だと言ってるだろ頭悪いな
NAME IS NULL [sage] 2016/10/24(月) 03:33:38.93ID:???

しかも自分で直ったと書いてあるだろ馬鹿
NAME IS NULL [sage] 2016/10/24(月) 03:35:16.10ID:???
ていうか俺自身が方々で数十倍〜数百倍にスピードアップさせてきた業者だからw
NAME IS NULL [sage] 2016/10/24(月) 03:47:25.19ID:???

生SQLとストアドって言ってるんだけど、何が全く同一なのか?

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

ストアド内の個々のSQLの、実際の実行計画って簡単には確認できなかった気がするなぁ
だれか簡単なやり方しってる?
NAME IS NULL [sage] 2016/10/24(月) 03:53:11.18ID:???
何が問題だったかわからんけど、とりあえず不要かもしれんインデックス追加して直りましたってか
パフォーマンスチューニングやる業者のレベルとしては信じられんな
NAME IS NULL [sage] 2016/10/24(月) 05:57:49.84ID:???

>replaceの必要性がわからんが
deleteしてinsertを一つのコマンドで実行したいからじゃねえ?
NAME IS NULL [sage] 2016/10/24(月) 07:59:00.21ID:???
文字列型のカラムで
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文を教えてください。
NAME IS NULL [sage] 2016/10/24(月) 09:01:09.32ID:???

dm_exec_query_statsにある情報でいいんかな
dm_exec_query_plan、dm_exec_sql_text組み合わせてステートメント単位でとってこれるよ
カーソルオープンは厳しかったと思うけど

生SQLが早いってことは検索条件に変数使ってるとかかね
分布が特異な偏りしてるインデックスをストアドで使うなら、with recompileつけるのが推奨だったと思う
ヒント文つけてもいいけど
NAME IS NULL [sage] 2016/10/24(月) 20:28:53.01ID:???

一旦日付型にCASTしてからフォーマット
つか特殊な要件が無ければ、DB上は日付型で保持してホストアプリ上で表示変換させた方が良いぞ


>dm_exec_query_plan、dm_exec_sql_text組み合わせ
それ見ても、どのプロシジャなのか探すのが大変だからなぁ
NAME IS NULL [sage] 2016/10/24(月) 21:24:42.51ID:???

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

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

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

なるほど。
でも日付型は1750年以降くらいしか保持できないそうですが、それで
問題は出ないのですか?
NAME IS NULL [sage] 2016/10/24(月) 21:49:30.87ID:???

文字列で持ってたら、日付計算どうすんだよ


日付型って言っても色々あるから
dateかdatetime2使え
NAME IS NULL [sage] 2016/10/24(月) 21:52:59.93ID:???

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

要件定義次第
だがまずない
NAME IS NULL [sage] 2016/10/24(月) 21:54:49.77ID:???

後はどういった要件があるのかな?
NAME IS NULL [sage] 2016/10/24(月) 22:00:16.76ID:???

ありません。
NAME IS NULL [sage] 2016/10/24(月) 22:07:49.71ID:???

どういった目的で紀元前を扱いたい?
扱うとは具体的にどういった処理をする?
NAME IS NULL [sage] 2016/10/24(月) 22:31:02.56ID:???

紀元前を扱う目的はその年代の年月日をデータで保管したいから。
日付の計算はしない。
それだけ。
NAME IS NULL [sage] 2016/10/24(月) 22:34:19.37ID:???

なら文字型が無難。
NAME IS NULL [sage] 2016/10/26(水) 00:41:26.43ID:???
てきとーにアンインストールしたら次から全然インストールできんくなった...助けて
NAME IS NULL [sage] 2016/10/26(水) 01:21:01.81ID:???
インストールログみて止まってるとこでググる
システムの復元でアンインストール前に戻す
OSから入れ直す
なにも情報ないからこれくらいしか言えない
NAME IS NULL [sage] 2016/10/26(水) 12:44:47.05ID:???
ットアップが失敗しました。
クリーンアップが必要ですってポップアップがでてきます..
NAME IS NULL [sage] 2016/10/28(金) 08:12:24.68ID:???
なんとか、再インストールできやした。あざした。
NAME IS NULL [sage] 2016/10/31(月) 14:07:37.12ID:???
sql serverとmysqlとで同じテーブルを同期させるなんて出来ますか?
sql serverの本データをmysqlにコピーする感じで。
NAME IS NULL [sage] 2016/11/03(木) 07:25:24.79ID:???

MySQLへリンクサーバー定義して、同期時に更新とかで出来そうな気がする
同期どうするかは考えんとダメだけど
NAME IS NULL [sage] 2016/11/03(木) 10:12:13.06ID:???

sql serverからmysqlへの一方通行のコピーなら簡単に出来るもんなの?
NAME IS NULL [sage] 2016/11/04(金) 05:38:06.52ID:???
リンクサーバ定義すれば、SQLServerからはローカルテーブルとほぼ同じように扱える
NAME IS NULL [sage] 2016/11/04(金) 16:29:37.52ID:???

ありがとうございました。
リンクサーバーでググってみます
NAME IS NULL [sage] 2016/11/07(月) 22:55:01.33ID:???
デフォルトだとdbo スキーマが使われますが、
実際の開発現場では、スキーマを何種類も作成して使い分けるなど
するのでしょうか?
dbo一個だけでテーブルを使い分ければそれで済む場合も多いと思いますが。
NAME IS NULL [] 2016/11/07(月) 23:26:03.19:eRnTZUaL

dboはスキーマではなくユーザー。

Oracleのようだと勘違いしてる?
NAME IS NULL [sage] 2016/11/08(火) 00:40:36.68ID:???
例えばここにdboはスキーマだと書いてありますが。
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14142218604
sage [] 2016/11/08(火) 19:07:02.08:6hEpw8np
ttps://www.youtube.com/watch?v=tY-xyCbzdqY

ttps://www.youtube.com/watch?v=NJYs5GTmdcg
NAME IS NULL [sage] 2016/11/08(火) 23:19:02.99ID:???
今のSQLServerはDBユーザとスキーマが別なので、同じ名称のスキーマもユーザも存在するぞ

スキーマは使い分ける必要があればそうすればいいし
単一スキーマで問題なければ全部dboでもいいんじゃね
NAME IS NULL [sage] 2016/11/09(水) 00:28:18.37ID:???

> dboはスキーマではなくユーザー。
違うよ
ttps://msdn.microsoft.com/ja-jp/library/bb669061(v=vs.110).aspx
NAME IS NULL [sage] 2016/11/09(水) 09:53:38.05ID:???

>スキーマは使い分ける必要があればそうすればいいし
スキーマを分けるのは例えばどんな場合なん?
NAME IS NULL [sage] 2016/11/09(水) 19:50:50.41ID:???

テーブル更新できないスキーマ作ったりのセキュリティ要件とか

スキーマっていうよりユーザって言う方がしっくりくるんだけどな
まあどうせDBごとでユーザとスキーマは1対1だろうし
実際スキーマとユーザの違いはすっきり説明できん
単にワンクッション入ってるだけってイメージだ
NAME IS NULL [] 2016/11/09(水) 22:45:58.11:9dB+mYx1

本来はユーザーで所有者なんだよ。

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

SQL Serverではユーザーとスキーマは別のくくり。
NAME IS NULL [sage] 2016/11/09(水) 23:03:36.67ID:???
そんなオレオレ定義を開陳されても困る
NAME IS NULL [] 2016/11/10(木) 18:02:32.23:0Mu12LBJ
私は元創価の会員でした。
すぐ隣に防衛省の背広組みの官舎があるのですが、
自分の家の窓にUSB接続のwebカムを貼り付けて、そこの動画を撮影し続け、
学会本部に送っていました。

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

それ以来、どこへ行くにもぞろ目ナンバーの車につけまわされたり大変な日々です。
全部自分の出来心から起きたことで、どこに訴えるわけにもいかないのですが、
なんとかあの人たちと縁を切った上で新しい始まりを迎える方法はないんだろうか。
NAME IS NULL [sage] 2016/11/10(木) 22:12:44.11ID:???
まあ、SQLServerに限れば、昔はスキーマとDBユーザは同一だったから
>スキーマという概念は後付け。
と言えなくはないかもしれんが

>SQL Serverではユーザーとスキーマは別のくくり。
とどうつながるのか理解できん
NAME IS NULL [sage] 2016/11/11(金) 07:20:29.10ID:???
スキーマを正しく説明出来る人はここにはいないんですか?
NAME IS NULL [sage] 2016/11/11(金) 10:40:53.75ID:???
CitrixのXenAppのデータベースのぞいたら、サービスの単位でスキーマ分けてたな
ユーザはコンピュータアカウントだけででdb_owner
そんなやり方もあるんだなと感心した
うちは機能単位でなんてわけられないからdbo1個
リソースガバナー使う場合もあるからユーザは複数
NAME IS NULL [sage] 2016/11/11(金) 10:55:41.98ID:???

スキーマというのは、大抵のRDBMSで共通する概念ですね。
一つのデータベース内で論理的なグルーピングをするためのものです。

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

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

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

に URL 書いてあるのになぜ読まん
NAME IS NULL [] 2016/11/13(日) 01:56:32.48:ImZglz/9
SQL Serverは日本マイクロソフトのサポートがやる気ねえからな。
NAME IS NULL [sage] 2016/11/13(日) 17:11:33.05ID:???
日本MSはMSの名を借りた国内代理店だと思ってる
NAME IS NULL [sage] 2016/11/14(月) 10:03:43.16ID:???
Windows Server 2012R2 のWindows VPSでSQL Server Express 2016動かすには
メモリ2GBだと厳しいか?
IISも動かしている。
NAME IS NULL [sage] 2016/11/14(月) 19:09:41.20ID:???
Expressは使用メモリ1GBに制限されてなかったかな…
もちろん余裕があるに越したことはないけれども
NAME IS NULL [sage] 2016/11/15(火) 00:33:47.54ID:???
Committed bytesの適正値を考えると、メモリ2GBならIISとSQLserver合算で1GB未満、できれば600〜800MBくらいかなあ感覚だけど
IISとSQLserverで上限設定しときゃサーバーが不安定になるのは抑えられると思う
素直にメモリ増強するのが一番いいけどね
NAME IS NULL [sage] 2016/11/15(火) 23:39:28.97ID:???
>>148
レスありがとうございました。
余裕をみて4GBくらいでVPS契約してみます。
NAME IS NULL [sage] 2016/11/16(水) 11:07:27.41ID:???

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

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

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

分かる方いらした教えてください。
NAME IS NULL [sage] 2016/11/16(水) 20:11:15.42ID:???

ディスクが溢れたとかかも
まずはイベントログを見た方がいいと思う
ttps://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/
NAME IS NULL [sage] 2016/11/17(木) 23:05:51.60ID:???
ある特定のテーブルで大量の件数をDeleteする時だけ
異常に時間がかかるんですが何故だかわかりますか?
ググってもイマイチ分からんです

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

エスパーの方教えてください
NAME IS NULL [sage] 2016/11/18(金) 00:05:01.89ID:???

断片化が走りまくってるとか?
Insertするときもプライマリキー張ってると徐々に遅くなってくしそれかも
一回リビルドインデックスしてからやってみたら変わらんかなあ

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

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

生かすデータだけ別テーブルに吐いてtruncate tableして別テーブルをリネームしたほうが早い場合もある
NAME IS NULL [sage] 2016/11/18(金) 08:05:35.18ID:???
リレーション絡んでると無理だけど
NAME IS NULL [] 2016/11/18(金) 08:14:49.18:mgIvH7zu

そんな初心者みたいなアドバイスするなよw
NAME IS NULL [sage] 2016/11/18(金) 11:56:10.77ID:???

待ってましたー、w
NAME IS NULL [sage] 2016/11/18(金) 12:53:12.29ID:???

1000万件中10万件だけ残したいとか
そういう時はそっちの方がいいよね
truncateは本当に爽快
NAME IS NULL [] 2016/11/18(金) 13:09:12.94:mgIvH7zu
初心者スレかよw
NAME IS NULL [sage] 2016/11/18(金) 13:35:15.03ID:???
だけど、 以外に方法ないんだな、これが
あと、1回あたりのdelete数を減らしてやって(その分、何回も回して)
1トランザクションあたりのロックを多少なりとも緩和するか
NAME IS NULL [sage] 2016/11/18(金) 13:39:05.15ID:???
自分の場合、1億レコードが1000万件を退避させるとき
SET ROWCOUNT 指定して、小刻みに削除してる
(トランザクションログが一杯になるのを防止)

それでも平気で一晩とかかかるが
NAME IS NULL [] 2016/11/18(金) 13:41:35.56:mgIvH7zu

おまえの環境なんか知らねえよw
NAME IS NULL [sage] 2016/11/18(金) 13:48:32.20ID:???
じゃ具体的な打開策を示してみろよ
NAME IS NULL [sage] 2016/11/18(金) 18:52:28.15ID:???
・復旧モデルを完全から単純にする
・テーブルロックを明示して削除する
・クラスターインデックスをやめる
・インデックスをドロップしてから削除

全部やって遅いなら、ハードを速いのに変えろ
NAME IS NULL [sage] 2016/11/19(土) 10:21:04.31ID:???
具体的には何も言えないチキン ⇒ ID:mgIvH7zu
NAME IS NULL [sage] 2016/11/19(土) 10:29:48.42ID:???
パーティションテーブルにできるならそれにしちゃえば?
あれならパーティション単位にトランケート 出来るらしいが
NAME IS NULL [sage] 2016/11/19(土) 11:41:15.25ID:???
色々あるもんだね
NAME IS NULL [] 2016/11/19(土) 12:44:15.23:QTm9YLIS

質問した本人がいないからな。
NAME IS NULL [sage] 2016/11/19(土) 15:34:55.16ID:???
truncate table に where 書けたら解決なのにな
それか、delete に「Rollback不能で構いませんから速くやってください」って with 句を準備してくれるか
NAME IS NULL [sage] 2016/11/19(土) 21:17:15.83ID:???
ロールバック不能で良いっていっても、その文でのアトミックは保障しないとだめだからなぁ
NAME IS NULL [sage] 2016/11/19(土) 22:46:43.49ID:???

これの下の質問書いた者です
不具合ではなさそうなのがわかったのですがどうしたものかと質問です。

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変換くらいしか思い付かない
NAME IS NULL [sage] 2016/11/19(土) 23:12:30.44ID:???

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

SQLは手続き型言語ではないので実行順序はオプティマイザが決めるってのが原則
ある程度はオプティマイザへの指示をクエリヒントって形で出せるけど

Dの結合を先にするようにサブクエリ書いてFORCE ORDER指定で行けるかもしれんが
そんなSQLは保守性わるいし、基本的にはどんな実行計画でもエラーにならんようにしろとしか
NAME IS NULL [sage] 2016/11/23(水) 10:58:15.12ID:???

1億レコードって物凄い大きなDBですか?
どんなシステムなのか見当もつかない
NAME IS NULL [] 2016/11/23(水) 15:31:19.70:RVwlvGQS

誰もが知ってる会社のシステムならその程度は珍しくもないけど。
NAME IS NULL [sage] 2016/11/23(水) 20:11:21.26ID:???

全然普通じゃん
どんな仕事してん?
NAME IS NULL [sage] 2016/11/23(水) 21:48:35.25ID:???

むしろお前にどんな仕事してるのかを聞きたいわ
NAME IS NULL [] 2016/11/24(木) 00:03:09.24:nZ9WujKe
スカート捲ってもらって股間の香り嗅ぎながらチンポ握ると五分で発射寸前だよ。
二十歳ぐらいの女の子のナマパンツに顔を埋めて拭き取り漏れのお尻の穴のリアルな香りを嗅いで好き放題シコる。
この状況で一時間持つ意味が分からん。
NAME IS NULL [sage] 2016/11/28(月) 14:13:26.04ID:???
更新しなくてSELECTだけのストアドがあります。
パラメータは3つです。

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

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

いったい何が原因なのでしょうか。
NAME IS NULL [sage] 2016/11/28(月) 14:34:48.86ID:???
解決しました。

ALTER DATABASE データベース名 SET ARITHABORT ON
で算術アボートを有効にしてやったら、クエリエディタと同じになりました。
NAME IS NULL [sage] 2016/11/28(月) 14:56:49.87ID:???
ちょっと違ってました。

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

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

ゼロ割算の対策はしてあるつもりだし、むしろ NULL で進むよりエラーにしてもらったほうが嬉しいので
これはこれでいいのですが、全ての SqlCommand に埋め込まないといけないのか・・・
NAME IS NULL [sage] 2016/11/28(月) 15:26:31.97ID:???

テーブル変数とか使ってる?
実テーブルからだけのselectでも発生してる?
NAME IS NULL [sage] 2016/11/28(月) 15:54:51.04ID:???
テーブル変数を使ってたんですが、作業表(#〜)にしても一緒でした。
中身一緒かもしれませんが。
NAME IS NULL [sage] 2016/11/28(月) 16:07:15.48ID:???

テーブル変数つかうと、行数を正しく判定できないで遅いプラン作る事があるってのは聞いたことある
selectしてるとこにRECOMPILEヒント入れるとマシになるかも
当然リコンパイル分のパフォーマンス劣化はあるけど、遅いプランとどっちがマシか比べて
NAME IS NULL [sage] 2016/11/28(月) 16:19:19.41ID:???
ストアドの中のselect〜の末尾に option(RECOMPILE) 追加するんですよね?
試してみましたが、全く効果なく、事前の SET ARITHABORT ON を外すと元通り劇遅になりました。

ConnectionStringで SET ARITHABORT ON を指定できたらいいのですが。。。
NAME IS NULL [sage] 2016/11/28(月) 16:38:59.67ID:???
ARITHABORT OFFで遅い実行計画つくることがあるとはMSDNにも書かれてるけど
実際にそれが原因で問題のある実行計画作られたのは見た事ないなぁ
executeにWITH RECOMPILEつけても同じ?
これでダメなら、自分で適切なヒント付けてやればいいんだけど
そもそも実行計画の問題じゃない気もしなくはないな
NAME IS NULL [sage] 2016/11/28(月) 17:00:05.82ID:???
テーブルに単価のフィールドを持ってなくて、そのかわりに金額÷数量を単価とみなすビューを作ってあるんです
金額/nullif(数量,0) as 単価

それ利用してるもんだから、ゼロ割算の関係だとしたらビンゴなんですよ。
NAME IS NULL [sage] 2016/11/28(月) 17:12:45.91ID:???
以降は、君のブログで。
NAME IS NULL [sage] 2016/11/28(月) 17:20:38.36ID:???
SET NOCOUNT ON してる?
ほんとにSET ARITHABORT の問題なら、ストアドの中でSET ARITHABORT ON すれば良い
NAME IS NULL [sage] 2016/11/28(月) 17:30:39.39ID:???

SET NOCOUNT ON は基本やってます。
ストアドの中で SET ARITHABORT ON 明示してもいいんですか。

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

ttp://www.sommarskog.se/query-plan-mysteries.html
が詳しいようです。
NAME IS NULL [sage] 2016/11/28(月) 17:32:01.75ID:???
いま注目してるストアドを相手にしたときは

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

くらいの違いがありました。
続けて何度か回しても結果は大差ないので、キャッシュの関係もなさそうだし・・・
NAME IS NULL [sage] 2016/11/28(月) 18:04:45.26ID:???

そこも、基本的にはオプションが違うと実行計画が違うよって話

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

キャッシュってのは、クエリプランのキャッシュのこと
データキャッシュとは別だから、何回回しても大差ないよ
NAME IS NULL [sage] 2016/11/28(月) 18:12:55.62ID:???

> そのコードじゃゼロ割りの対策してないしw
ど素人は黙っとけ
NAME IS NULL [sage] 2016/12/02(金) 13:29:12.92ID:???
col1  nvarchar(100)   Primary Key
col2  int  Primary Key, IDENTITY
con3  nvarchar(100)
の場合に
col1,col3の値を指定してinsertのつもりが、間違えてUpdateを実行したら
col1の値に等しい全ての行のcol1, col3が全部同じ値になってしまったのですが
そういうもんですか?
NAME IS NULL [sage] 2016/12/02(金) 15:28:09.53ID:???
どうやったらInsとupd間違うんだろう
where句なしで実行ってこと?
ORマッパーみたいなツールの話だろうか
NAME IS NULL [sage] 2016/12/02(金) 15:30:42.82ID:???
言ってる意味がわからないけど
col2がidentityならそれでユニークは保障されるから
col1とcol3が全部同じでもなんの不思議もない

どう間違えたらinsert文がupdate文になるのか知らんが
そういうSQL流したんだろ
NAME IS NULL [sage] 2016/12/02(金) 17:00:30.97ID:???
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)
NAME IS NULL [sage] 2016/12/02(金) 17:54:06.99ID:???
update 表名
set col1 = 'Aさん',col3 = 'データ1'

以外でこうなるSQLを考えるクイズの時間です
NAME IS NULL [sage] 2016/12/02(金) 18:25:05.90ID:???

つか、そもそもそのテーブルのPKがおかしい。
NAME IS NULL [sage] 2016/12/03(土) 09:08:53.55ID:???

複合主キーじゃあないの?
どのあたりがおかしい?
NAME IS NULL [sage] 2016/12/03(土) 18:56:22.41ID:???

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

あくまでcol2単独の検索はしない前提たが
インデックスがcol1からの(クラスタ化)インデックスひとつで済むってメリットもあるかもしれんw
NAME IS NULL [sage] 2016/12/03(土) 20:22:19.14ID:???

> そういう意図を表すため
いやその「そう言う意図」がイミフなんだが
NAME IS NULL [sage] 2016/12/04(日) 10:31:37.61ID:???
>196
のような手法は一般には使わないの?
NAME IS NULL [] 2016/12/04(日) 10:45:59.24:5zb5esCr
insertのつもりでupdateしてしまう手法のことか?
NAME IS NULL [sage] 2016/12/04(日) 11:20:07.32ID:???
のような手法
って言うのが Identity + 他の何か を複合キーにすると言う話なら俺は見たことはない
むしろ の言ってる方がまだあり得る
NAME IS NULL [sage] 2016/12/14(水) 16:16:48.82ID:???
TBS
NAME IS NULL [sage] 2016/12/15(木) 15:38:31.31ID:???
調べものしててmsdnのサイト見てたら2016の次にVNextとかいうのがでてた
早いなあと思ってたら2016のSP1が既に出てて驚愕
Microsoftなんか焦ってる?
NAME IS NULL [sage] 2016/12/17(土) 16:44:00.77ID:???
linux版はvNext相当だっけ
NAME IS NULL [sage] 2016/12/21(水) 10:18:02.84ID:???
VPSでSQL SERVER EXPRESS 2016を使う場合には最低限どんなスペックが必要かな?
運用中の人がいたらCPU数、メモリGBなどアドバイスが欲しい。
NAME IS NULL [sage] 2016/12/21(水) 18:43:55.62ID:???
規模も用途も書かんのなら、公式の動作環境以上の回答があるとは思えんが
NAME IS NULL [sage] 2017/01/18(水) 23:26:29.67ID:???
カーソルのFAST_FORWARDって内部で何してるの?
INSENSITIVEやFORWARD_ONLYだとmaxdop数分のスレッドでカーソルオープンしてるのに、FAST_FORWARDだと1dopになる
クエリは単一テーブルのselect文で、group by、order by句がある
msdnのカーソルのとこ読んだけどわかんなかったよ
ちな2014のsp2です
NAME IS NULL [sage] 2017/02/01(水) 11:41:06.33ID:???
入門書としておすすめの書籍ある?
NAME IS NULL [] 2017/02/03(金) 18:34:25.46:0GL48OMF
2014でレプリケーションができないです
配布元のデータができないです
リカバリする方法ないでしょか?
NAME IS NULL [] 2017/02/04(土) 11:55:40.69:nkqeAkqN
ttps://www.youtube.com/watch?v=quIHgwuF6r4&sns=em
NAME IS NULL [sage] 2017/02/04(土) 19:51:14.97ID:???
sql サーバーってマルチコアcpuで実行すると並列で処理されてレスポンス速くなったりするの?
NAME IS NULL [sage] 2017/02/04(土) 20:08:45.52ID:???

ならないよ。
NAME IS NULL [sage] 2017/02/04(土) 20:09:35.90ID:???

なるよ
NAME IS NULL [sage] 2017/02/04(土) 23:23:46.43ID:???
レスポンス変わるだろうけど、ディスクアクセスの要素のほうが強くて条件次第では大幅に、とはいかなそうね
NAME IS NULL [sage] 2017/02/05(日) 02:38:35.83ID:???
2016 express版を使っています。
20万件くらいのテーブルから全件をorder byして取り出すだけで
20秒くらいかかるんです、そんなもんですか?
NAME IS NULL [sage] 2017/02/05(日) 07:46:27.65ID:???

なんにもしなきゃそんなもんでしょ
NAME IS NULL [sage] 2017/02/05(日) 08:10:32.76ID:???

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

インデックスは張ってるのか?
NAME IS NULL [sage] 2017/02/05(日) 08:38:28.48ID:???

しなけりゃ何秒かかるのよ?
NAME IS NULL [sage] 2017/02/05(日) 09:07:02.46ID:???

なんですかそれは?

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

.NETスレ行け
NAME IS NULL [sage] 2017/02/05(日) 18:56:51.75ID:???
行かない
NAME IS NULL [sage] 2017/02/06(月) 23:59:23.88ID:???

このスレでの質問じゃないね
NAME IS NULL [sage] 2017/02/07(火) 11:16:26.90ID:???
sql serverとsql server express は速さは違うのでしょうか?
NAME IS NULL [sage] 2017/02/07(火) 12:31:51.30ID:???

全然よ
NAME IS NULL [sage] 2017/02/07(火) 12:39:38.10ID:???

何倍くらい?
NAME IS NULL [sage] 2017/02/07(火) 12:43:35.56ID:???

0.8〜1.19倍くらい
NAME IS NULL [sage] 2017/02/07(火) 12:57:17.68ID:???

条件による
使えるメモリーとかコア数違うから
NAME IS NULL [sage] 2017/02/07(火) 13:58:59.62ID:???

誰が測定したのですか?
NAME IS NULL [sage] 2017/02/07(火) 18:00:30.07ID:???
なんだこのアホなやりとりは
NAME IS NULL [sage] 2017/02/07(火) 19:31:44.18ID:???
レス古事記だろ
スルーでいいよ
NAME IS NULL [sage] 2017/02/21(火) 14:26:23.03ID:???
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みたいな () に複数項目が書けるもので、もうちょっとコンフリクト起きにくいなにかないですか。
NAME IS NULL [sage] 2017/02/21(火) 14:48:31.75ID:???

コンフリクトの使い方間違ってるんじゃないか?

それはともかく、単純にwhere old_item1 <> new_item1 or old_item2 <> new_item2 or ...
ってやるのは駄目なのか?
NAME IS NULL [sage] 2017/02/22(水) 08:27:45.48ID:???
binary_checksumがどうやって計算してるかしらんが、たとえば単純なsumだったら
(1,0)と(0,1)が同じ値になるのは当然だわな
素直に全項目比較する方がいいんじゃね

どういう状況かわからんが、本来はホストアプリ側で更新する(UPDATE発行する)かどうか判断するべきだと思うけどな
239 [sage] 2017/02/22(水) 10:07:47.80ID:???
ありがとうございます。
仕方ないので
where ・・・ and (binary_checksum(項目1)<>binary_checksum(@項目1) or binary_checksum(項目2)<>binary_checksum(@項目2) ・・・)
という風にやりました。
HashBytesにしなかった理由は、項目1つならコンフリクトの可能性が低いと判断したためです。
(演算の軽いほうで)
NAME IS NULL [sage] 2017/02/22(水) 21:31:00.62ID:???
SQLServerを使用したいと思っているのですが、全くの無知なので教えて頂きたいです。

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

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

初歩的なことだと思うのですがよろしくお願いします。
NAME IS NULL [sage] 2017/02/22(水) 21:55:11.78ID:???

とりあえずやってみると良いよ
費用かからないし
しかし今時こんなが環境あるんかな
20年くらい昔によくあったやつ
NAME IS NULL [sage] 2017/02/22(水) 23:17:15.03ID:???

アップサイズは全部が全部改善するとは限りませんが基本的には改善します
下の方が書かれている様に、まずやってみると良いですよ
これくらいか〜と体感できますので

ODBCリンクであれば基本的にフロントのAccessはそのまま使用できます
SQL Serverは文字コード、ソート順、キー、インデックス
くらいは確認しておいた方が良いですよ
NAME IS NULL [sage] 2017/02/23(木) 12:33:19.21ID:???


有り難うございます。
バックエンドをSQLServerに移行すると、フロントエンドでのVBAやクエリでの処理が今まで通り使えるのかが分からずに悩んでいました。

基本的には、バックエンドがacceesファイルからSQLServerに替わっても、特に編集し直すこともなくフロントエンドを使用することが出来るで大丈夫ですか?
NAME IS NULL [sage] 2017/02/23(木) 14:40:40.20ID:???

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

助言有り難うございます。
accdbなのでそのまま使えそうです。

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

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

テーブル編集はSQL Server Management Studioを使うか、DDL直接投げるか
単純なUPDATEなら10万レコードだろうが一瞬で終わるよ(※データ量次第)
NAME IS NULL [] 2017/02/23(木) 20:51:17.86:/7OWtulZ
思わせぶりな※
NAME IS NULL [sage] 2017/02/23(木) 21:19:27.58ID:???

昔のAccessしか知らないけど
主キー無い場合はテーブルリンク作成時にキー項目選択するとかだったはず
当然可能なら主キーは設定すべきだけど

「9万9999件は無駄な更新」ってのが意味不明
何万件あろうが更新対象が1件の場合は1件しか更新しないよ
その場合の更新は文字通り一瞬で終わる
NAME IS NULL [sage] 2017/02/23(木) 22:30:45.12ID:???

フロントエンドのフォームでテーブルのデータは編集出来ないのでしょうか?

私の勘違いでしょうか。
いつも日報等で更新したいデータはカレントレコードの1件なのですが、更新クエリを使うと〜万件(全件)のデータを更新します、と表示されて、数分かかります。
クエリはフィールドAが空白ならフィールドBに"合格"の文字、フィールドAが空白以外なら"不合格"の文字を入れる、というクエリです。
これでは全レコードがクエリの対象になっていると解釈すべきですか。
NAME IS NULL [sage] 2017/02/24(金) 02:51:11.36ID:???

テーブル開いてデータ変更できるよ
更新権限のないユーザーで接続してると思う
NAME IS NULL [sage] 2017/02/24(金) 06:17:19.75ID:???

このロジックだったら全件更新だよ

以下なら2件の更新になるよ
それでも時間かかる場合はAとBのインデックスを作成すれば一瞬で終わる
Aが空白でBが合格以外の場合は、Bに合格を入れる
Aが空白以外でBが合格の場合は、Bに不合格を入れる
NAME IS NULL [sage] 2017/02/24(金) 07:23:35.87ID:???

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

>全レコードがクエリの対象になっていると解釈すべきですか
どんなクエリ(SQL)流したかとどんなテーブル(インデックス)だったか分からんと分からん
が、全件読み込んでる可能性が高いなぁ


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

メインはサーバ側の話じゃなくてACCESSの動作の話だし
ACCESSのスレ探すが作るかして移動したほうが良いんじゃね
NAME IS NULL [sage] 2017/02/24(金) 12:27:49.62ID:???
皆様有り難うございます。一度クエリを見直してみます。

色々と調べたのですが、単純なフロントエンドをaccess、バックエンドをSQL ServerでODBC接続では、
クエリ等の処理はサーバー側でななくクライアント側で処理されるのであまり速度の恩恵はないと見たのですが、やはりそうなのでしょうか?
これをサーバー側で処理する場合、かなりVBA等の手直しが必要なそうですが、そこまでいくと素人レベルでは難しそうです。
NAME IS NULL [sage] 2017/02/25(土) 03:47:54.77ID:???
やってみてそう感じたなら恩恵はないんだろうね
NAME IS NULL [sage] 2017/02/25(土) 11:50:18.21ID:???

SQL文の実行はAccessではなくSQL Serverだよ

で改善できると思われ
NAME IS NULL [sage] 2017/02/25(土) 17:40:28.48ID:???

有り難うございます。
SQL文はSQL Serverで処理されるのですね。

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

今までクエリ処理が重かったので、VBAを使ってきたのですが、出来るものはクエリに変えた方がいいのでしょうか?
NAME IS NULL [sage] 2017/02/25(土) 19:54:24.52ID:???
アクセスでodbcリンクテーブルを使うとデータが多いと遅いから
更新ない一覧表示とかの時はパススルークエリ使ったほうがいいと思うわ
NAME IS NULL [sage] 2017/02/25(土) 23:10:34.44ID:???

>SQL文をSQL Serverに渡し、SQL Serverが処理を行い
は正しいんだが、実行する内容によって、まずACCESSがどんなSQLを発行するか
その結果を受け取った後にどんな処理をするかによるので
>ネットワークトラフィックが少なくてすむ
とは限らん
で言ってるように、検索条件にACCESSの関数入るような処理だと結局ACCESS側で全件取得して検査するかもしれん
なんにしてもACCESSの話だからこれ以上はどっか移動しろ
NAME IS NULL [sage] 2017/02/26(日) 23:01:28.87ID:???
「上位200行を編集」で表示されたデータを全選択してコピーすると
選択したデータにはあった括弧などの文字が欠落してコピーされる」みたいになバグがSqlServerにあると聞いたのですが
本当なのでしょうか?(例えば"(ABC)"を選択してコピーし、メモ帳などに貼り付けると"(ABC"になってたなど)
NAME IS NULL [sage] 2017/02/26(日) 23:28:44.28ID:???
なんでどこで聞いたか言わないのかねえ
NAME IS NULL [sage] 2017/02/27(月) 08:15:54.58ID:???
自分で試せる環境はないのかね。
NAME IS NULL [sage] 2017/03/03(金) 00:00:11.98ID:???
VB6からSqlServerに接続する時はoo4oとかいうのを使うんだっけ?
NAME IS NULL [sage] 2017/03/03(金) 04:44:09.46ID:???
それオラクル
266 [sage] 2017/03/03(金) 06:07:27.23ID:???

そうだった、オラクルだったw

10年以上前(受託開発やってた会社の正社員時代)に使ってたからすごくなつい気分になったよ、ありがとう。
そんな俺も今じゃ客先常駐のしがない派遣社員・・・orz
NAME IS NULL [sage] 2017/03/04(土) 17:12:25.44ID:???
sql server使う人は言語はphp?
NAME IS NULL [sage] 2017/03/04(土) 17:31:18.72ID:???

なぜそう思った
NAME IS NULL [sage] 2017/03/05(日) 06:30:37.18ID:???
sql server使う人は言語はC#?
NAME IS NULL [sage] 2017/03/05(日) 11:37:02.05ID:???
SQLServerはStandardとEnterpriseのEdition機能差が酷すぎるわ
碌に新機能使えないならStandardなんて名乗らずにLiteとかにしろよと
NAME IS NULL [sage] 2017/03/05(日) 11:41:36.54ID:???
おれは C#,C++, PowerShell 辺りが多い
NAME IS NULL [sage] 2017/03/05(日) 11:53:02.37ID:???
Javaとか
NAME IS NULL [sage] 2017/03/05(日) 17:53:33.74ID:???
Javaと聞くといつも風呂釜洗浄剤を思い浮かべてしまう
NAME IS NULL [sage] 2017/03/05(日) 18:03:30.27ID:???
俺はexcelvba
NAME IS NULL [sage] 2017/03/05(日) 20:06:10.87ID:???

vbaで出来るの?
NAME IS NULL [sage] 2017/03/05(日) 20:28:50.09ID:???

vba sql-server でググれ
NAME IS NULL [sage] 2017/03/05(日) 20:35:26.58ID:???

ado(activex data object)でやってる
マスターの更新とかデータのセットや取得はエクセルでやったほうが楽チン
NAME IS NULL [sage] 2017/03/06(月) 00:11:22.47ID:???
OLEDB廃止だったはずだけど、いまだにADOで接続できるドライバあるのか
まあ、OLEDB-ODBCで行けるっちゃいけるんだろうけど
NAME IS NULL [sage] 2017/03/08(水) 14:25:17.42ID:???
現在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

この件に関しては対応方法はあるのですが、そもそもの原因が分からないのは気持ち悪いです。
何か思いつく事はありますでしょうか?
resumi [] 2017/03/08(水) 17:40:19.11:hjh5f++s
ttps://goo.gl/l3fSYl
これ本当??
普通にショックだね。。
resumi [] 2017/03/08(水) 18:04:56.55:hjh5f++s
ttps://goo.gl/l3fSYl
これ本当??
普通にショックだね。。
NAME IS NULL [sage] 2017/03/08(水) 20:59:53.54ID:???

暗黙の型変換かなあ

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

1レコード削除したら動くとか、ケツに持ってったら動く
とは整合性取れないけども
NAME IS NULL [sage] 2017/03/08(水) 22:54:59.32ID:???
問題のレコードの末尾にエスケープコードか何か入ってるんじゃないの?
NAME IS NULL [sage] 2017/03/09(木) 10:10:24.96ID:???
NVARCHAR内のNULL文字(NCHAR(0))を検索または置換する方法はありますか?
LIKE '%'+NCHAR(0)+'%'
REPLACE(name, NCHAR(0), '')
等を試してみましたが、だめでした。
NAME IS NULL [sage] 2017/03/09(木) 13:06:16.75ID:???

正しいやり方かどうかはわからんが
select * from table where name like N'%' + nchar(0) + N'%' collate JAPANESE_BIN
で検索できたよ
286 [sage] 2017/03/09(木) 17:08:09.99ID:???

できました
ありがと
NAME IS NULL [sage] 2017/03/09(木) 17:13:43.94ID:???
SQLサーバっていまだにNとかncharとかcollateとかいるのか
NAME IS NULL [sage] 2017/03/09(木) 22:25:14.46ID:???

ncharは他のdbでもいるだろ
NAME IS NULL [sage] 2017/03/10(金) 11:42:27.96ID:???

あ、そうなの?
最近PostgreSQLしかやってないから、他DBがどうなってるのか知らない
NAME IS NULL [sage] 2017/03/28(火) 10:32:41.51ID:???
1回目もクエリだけやたら時間がかかるっていう経験ないですか?
2回目は速い
改善する方法あったら教えてください
NAME IS NULL [sage] 2017/03/28(火) 13:20:36.85ID:???

まずは、やたら時間がかかる原因を調べる。実行計画を見るとか。

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

キャッシュミス多発なら、キャッシュサイズを拡大する。
ハード性能的に無理なら、より性能の良いハードに乗り換える。
NAME IS NULL [sage] 2017/03/28(火) 14:33:14.80ID:???
DBサイズくらいのメモリ積め
NAME IS NULL [sage] 2017/03/28(火) 14:55:00.82ID:???
今調べたら、Windows Serverは余裕でTBの領域に入ってるな。2016でmax 24TB。
メモリは32GB*4の128GBで17万程度。
NAME IS NULL [sage] 2017/03/28(火) 16:34:29.46ID:???
ストアドにしてコンパイル済みにする手もあるが
NAME IS NULL [sage] 2017/03/30(木) 00:46:03.18ID:???
ストアドにしたって、データのキャッシュミスは減らんと思うが
コンパイル時間で1回目だけやたら時間がかかるとか、どんな複雑なクエリ書いたらそうなるってんだ
NAME IS NULL [sage] 2017/03/30(木) 15:01:26.21ID:???

単にディスクからの読み込み量が多いだけでしょ
場合によっては、その読み込みが不要な場合もあるから、1回目のクエリから高速化できかもしれん
NAME IS NULL [sage] 2017/04/02(日) 18:33:09.18ID:???

データがキャッシュにヒットする以外に
ディスクからの読み込みが不要で高速化できる場合の具体例をあげてくれ
NAME IS NULL [sage] 2017/04/03(月) 13:31:22.61ID:???

説明不足ですまん。
ディスクからの読み込みがゼロになるということじゃなくて、不要な読み込みがなくなるかもという話。
例えば、
・インデックスがなくseq scan発生
・インデックスはあるがクエリがまずくてインデックスが使われずseq scan発生
とか。
NAME IS NULL [sage] 2017/04/04(火) 08:11:48.03ID:???

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

ストアドは関係ないよ
クエリの内容そのものに問題があったり、indexを作ったりしたら読み込みページ数が減るかもねという話
なので、まずは実行計画を見るところから始めましょうということ
NAME IS NULL [sage] 2017/04/04(火) 11:06:24.35ID:???
舐めるデータが多くて、初回はハードディスクから、2回目以降はキャッシュされたメモリーから
だから速度が違う

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

あとインデックスを見直すか
NAME IS NULL [sage] 2017/04/04(火) 11:23:43.06ID:???
ストアドストアド言ってる人は、90年代に生きてるんですかね
NAME IS NULL [sage] 2017/04/04(火) 12:18:00.83ID:???
今どきはストアド使わんのがトレンディなんか?
NAME IS NULL [sage] 2017/04/04(火) 13:22:41.59ID:???

実行時間短縮が目的でストアドを使う奴はいないだろうね
NAME IS NULL [sage] 2017/04/04(火) 14:30:20.24ID:???
数百KBレベルのクエリなら、parse->palnningでコンマ何秒かかかるかもしれん
NAME IS NULL [sage] 2017/04/04(火) 19:25:55.84ID:???

関係ない事を言うのに俺にアンカつけんのやめてもらえんかな
俺までバカに見えるやろが
NAME IS NULL [sage] 2017/04/05(水) 10:42:22.90ID:???

がバカな発言だと思ってないんだw
NAME IS NULL [sage] 2017/04/05(水) 12:26:42.39ID:???

だからなんだよ?
お前がそう思ってる事が今なんか関係あるのか?
バカしかいないのかここは
NAME IS NULL [sage] 2017/04/05(水) 13:18:00.59ID:???

> だからなんだよ?
みたいなマヌケなレスするなってことだよ
そんなこともわからんバカなの?
NAME IS NULL [sage] 2017/04/05(水) 13:28:16.18ID:???

いつまでも暴れられると困るので。
> 今どきはストアド使わんのがトレンディなんか?
そういうトレンドはありません。
NAME IS NULL [sage] 2017/04/05(水) 20:27:50.95ID:???
まあしかし、ORMの普及や回線速度の向上とかでストアド不要論が優勢な流れはあるかと
昔はトラフィック減らして速度向上させるためにストアドって流れはある事はあったからな
NAME IS NULL [sage] 2017/04/05(水) 21:15:40.39ID:???

だから関係ないレスでアンカつけんのやめてもらえんかな
俺までバカに見えるやろが
NAME IS NULL [sage] 2017/04/05(水) 21:58:10.55ID:???

SQLSeverと親和性高いC#がEF推しているのを見ると不要論が優勢でも不思議じゃないな
NAME IS NULL [sage] 2017/04/06(木) 10:39:37.36ID:???

EFとストアドに何の関係が?
NAME IS NULL [sage] 2017/04/06(木) 10:50:33.00ID:???
,315
ORMやEFが広まれば、よりストアドプロシージャ・ファンクションの需要が高まる気がするが。
ドメインロジックはサーバ側で実装し、クライアントはそれを使用するだけというスタイル。
NAME IS NULL [sage] 2017/04/06(木) 13:19:00.97ID:???
そんな思想があったらRailsなんぞ流行らんわ
何処の時空の話だよ
NAME IS NULL [sage] 2017/04/06(木) 13:59:58.76ID:???

まぁ、RailsだろうがEFだろうが、データをどかっと取ってきて、クライアントコードで
ごりごりドメインロジックを実装するような層には関係ない話かな。
NAME IS NULL [sage] 2017/04/06(木) 14:11:49.32ID:???
そんな話じゃねえよ
EFが何しにPOCOなんての売りにしてたかって話だ
NAME IS NULL [sage] 2017/04/06(木) 15:42:00.99ID:???

つまりは、
> データをどかっと取ってきて、クライアントコードで
> ごりごりドメインロジックを実装する
ということだろ?
POCOメインのプログラマには関係ない話だよ。

そんな話じゃないなら、どんな話なんだ?
NAME IS NULL [sage] 2017/04/06(木) 15:53:14.04ID:???
DB側でスキーマ書いて処理も書いてってのが古い思想という話をしている
開発スピードが無闇に上がってスキーマ変更朝令暮改でって今時はな
NAME IS NULL [sage] 2017/04/06(木) 15:58:59.46ID:???

> DB側でスキーマ書いて処理も書いてってのが古い思想という話をしている
なるほどね。
でも、ドメインロジックをデータベース側に寄せるか、クライアント側に寄せるかという問題は、
今でも存在する。ふるいも新しいもないと思うが。

> 開発スピードが無闇に上がってスキーマ変更朝令暮改でって今時はな
それこそ、データベース側にドメインロジックの実装を寄せた方がいいのでは?
NAME IS NULL [sage] 2017/04/06(木) 16:05:36.81ID:???
例えば、2003年のMartin Fowlerのブログポスト:
『ドメインロジックとSQL』
ttp://bliki-ja.github.io/DomainLogicAndSQL/

ここに書かれていることは、全然古いとは思わない。
逆に、自動生成されるコードをメインに使うようになる場合は、ドメインロジックを
ストアドファンクションで実装してViewにした方がいい場合も結構あると思うんだが。
NAME IS NULL [sage] 2017/04/06(木) 16:19:28.98ID:???
昔々のウォーターフォールで上流で設計決まる時代ならそれもよかろうさ
だが今はデータ構造から卓袱台返される
その時アプリとDB両方に手ぇ入れるのと
アプリだけで済むのとどっちが早いか?
自明だろ
NAME IS NULL [sage] 2017/04/06(木) 18:53:09.88ID:???
DB側でごりごり書いたストアドって、InMemoryでUnitTestできるのかい?
NAME IS NULL [sage] 2017/04/06(木) 20:44:49.38ID:???
Web系とかで高速開発/デプロイな現場なら
コードファーストも面白いし効率あがりそうと思うけど
DevOpsの時代っても考えなしに書くでなし
結局はV字開発なんだからDB側でスキーマ決めるくらい
やれば?みたいな思いはあるな古い考えなんだろうけど

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

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

純粋なコードファーストはある程度以上の規模だと使い物にならんと思ってた
スキーマはDB側でかっちり決めんと話にならんだろうと

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

ストアドにいろんなものを閉じ込めるのは、手法の新旧で言えばそれこそ古い手法だと思う
ストアドの保守はアプリの保守よりコストが高いのが現状じゃないかと思う
ストアドの保守がアプリの保守より低コストだって言う所ならそれを採用するのもありなんだろうけど
NAME IS NULL [sage] 2017/04/09(日) 16:01:53.60ID:???

ストアドって何よ?
NAME IS NULL [sage] 2017/04/09(日) 18:40:23.01ID:???
with(nolock)をselect文全てに付けるとヤヴァイ?
ググったらコミット前のデータが返ってくるとか
ページ分割が起こった場合行の重複や欠落が発生するとか書いてあるけど
今仕事で触ってる既存のselect文のコード全部そうなってる
NAME IS NULL [sage] 2017/04/09(日) 19:22:13.71ID:???
ヤバイかどうかは業務内容による
NAME IS NULL [sage] 2017/04/10(月) 14:48:01.02ID:???

質問の真意が図りかねるが
>ストアドにいろんなものを閉じ込める
の事であるなら、たとえば
ビジネスロジックをストアドとして実装することや
DBアクセスの結果をストアドの帰りとすることでスキーマ変更をアプリに意識させないこと
などの手法を指してる

純粋にストアドの意味が分からないなら
DBに格納できる一連の手続きかな
NAME IS NULL [sage] 2017/04/10(月) 15:17:23.17ID:???

常に1スレッドからしか触られない前提なら別にヤバくない
NAME IS NULL [] 2017/04/10(月) 22:02:15.03:mMYNtWws
ストアドってPGのたしなみとして
できて当たり前だと思うけど
今の新人はみたいなのが
多いのか。
NAME IS NULL [sage] 2017/04/11(火) 07:27:15.05ID:???

誰も同時に触らないならnolock必要なくね?
何のために入れたのやら

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

同時に一人(1スレッド?)しか触らないなら
2つのロックが対立することは無いんだから
NAME IS NULL [sage] 2017/04/11(火) 13:39:32.49ID:???

nolock指定すれば雀の涙ほど速くなる
それ以外の理由? 知らんそんなものは管轄外だ
NAME IS NULL [sage] 2017/04/11(火) 19:12:06.12ID:???
Hyperーvのレプリカサーバーに入っているSQLSERVERもライセンスって必要ですか?
NAME IS NULL [sage] 2017/04/11(火) 19:42:30.31ID:???

OSのライセンスが2つ必要ならそりゃSQLServerのライセンスも同じじゃね
NAME IS NULL [sage] 2017/04/11(火) 20:03:02.82ID:???

ありがとうございました。
不要と理解しました
NAME IS NULL [sage] 2017/04/12(水) 01:11:00.92ID:???
,335
スレッド一つでも複数コネクション持ってゴニョゴニョすると問題が出る気がする
NAME IS NULL [sage] 2017/04/12(水) 03:42:34.42ID:???

さすがにそれはない
まさかCOMMITせん訳でもあるまい?
NAME IS NULL [sage] 2017/04/12(水) 06:15:01.88ID:???

マルチスレッドの場合でも全トランザクションを
同期化してスレッドセーフにすればヤバくない
NAME IS NULL [sage] 2017/04/13(木) 00:21:38.38ID:???

コミットしてから次のトランザクション始めるならコネクション二つとか必要ないだろ
ようは同時実行するトランザクションがあるかどうかで、スレッドとか関係ないって話
NAME IS NULL [sage] 2017/04/13(木) 14:55:41.05ID:???
スレッド内でトランザクション完了しないで別のトランザクション始めるとかどんな状況だよ
特にSQLServerだと無駄に昇格起こってMSDTCエラー起こすぞ
NAME IS NULL [sage] 2017/04/13(木) 15:49:12.08ID:???
スレッドがどうこうとか、あんまり関係ない。
別プロセスでも話は同じ。

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

シーケンスなかった時に、連番とるためにやったことあるわ
NAME IS NULL [sage] 2017/04/13(木) 19:40:53.62ID:???

俺もよくやるよ。が無知なだけ
NAME IS NULL [sage] 2017/04/13(木) 19:43:06.41ID:???

晒し
NAME IS NULL [sage] 2017/04/13(木) 19:49:56.90ID:???

まさかと思うが入れ子トランザクションでドヤってんじゃあるまいな…?
NAME IS NULL [sage] 2017/04/13(木) 20:10:39.13ID:???

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

連番取るのにトランザクション外からやるっての?
ますますもって意味わからんぞ
NAME IS NULL [sage] 2017/04/13(木) 21:36:54.46ID:???

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

よーく考えよう
NAME IS NULL [sage] 2017/04/14(金) 10:56:34.23ID:???

今となっては、バッドノウハウ
NAME IS NULL [sage] 2017/04/14(金) 11:06:49.82ID:???
結論は何も考えずにnolock入れるつもりなら止めとけってことじゃないの
NAME IS NULL [sage] 2017/04/14(金) 15:02:31.19ID:???

それフツーに不整合出ねえ?
NAME IS NULL [sage] 2017/04/14(金) 15:57:02.04ID:???

出ませんが、何か?
NAME IS NULL [sage] 2017/04/14(金) 20:02:12.33ID:???

今時の代替手段はどんなの?


何を懸念してるか知らんが問題ない
欠番の発生は想定内
NAME IS NULL [sage] 2017/04/14(金) 20:21:40.16ID:???

シーケンス
NAME IS NULL [sage] 2017/04/14(金) 20:31:11.74ID:???

> 今時の代替手段はどんなの?
シーケンスだろ
NAME IS NULL [sage] 2017/04/14(金) 21:37:16.31ID:???
シーケンス互換性ないじゃん
NAME IS NULL [sage] 2017/04/15(土) 14:02:49.32ID:???

シーケンスと何が互換性ないって?
NAME IS NULL [sage] 2017/04/16(日) 08:42:49.91ID:???

違う
シーケンスとかIDENTITYは製品間で互換性無いって言ってんだろ
NAME IS NULL [sage] 2017/04/17(月) 00:45:52.25ID:???
今の流れでそれがどうだと?
NAME IS NULL [sage] 2017/04/17(月) 13:04:14.32ID:???
シーケンスって…なに?
NAME IS NULL [sage] 2017/04/17(月) 14:40:37.19ID:???

つ google
NAME IS NULL [sage] 2017/04/17(月) 16:51:13.99ID:???
何でこの程度のことググらないのか、毎度ながら不思議
NAME IS NULL [sage] 2017/04/18(火) 12:21:23.47ID:???
むしろお前が教えればいいだけなのにどうしてわざわざググらなければいかんのか
NAME IS NULL [sage] 2017/04/18(火) 13:06:43.50ID:???
教えてくれる奴が来るまで待つとか馬鹿でしょ
NAME IS NULL [sage] 2017/04/18(火) 19:21:58.59ID:???
いや待てよ勝手に理解したつもりになるな
ich1 [] 2017/04/21(金) 16:41:35.14:R/eXxgbc
ttps://goo.gl/q9Ml0S
これは嘘でしょ?本当だったら落ち込むわ。。
NAME IS NULL [sage] 2017/04/22(土) 01:49:55.34ID:???
vNext = 2017
ttps://blogs.technet.microsoft.com/dataplatforminsider/2017/04/19/sql-server-2017-community-technology-preview-2-0-now-available/

ようやくCTP 2
RTMはいつだー
NAME IS NULL [sage] 2017/04/25(火) 22:38:34.87ID:???
最近DB触り始めたんですが、チューニング的なことをする必要が出てきてT-SQLを知りたいです
例:)ttp://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
↑こんなふうにシステムビューとか含めてリファレンス的に読める本があれば教えて欲しいんですがどうですか

調べてもゼロ年代の本しかなくて、いきなり買うのも勇気がいります……
ちなみに日本語しかダメです
NAME IS NULL [sage] 2017/04/25(火) 23:17:16.27ID:???

>「ストアド」 = 「DBに格納できる一連の手続き」

いかにもシステム屋さんな定義だなw
NAME IS NULL [sage] 2017/04/26(水) 12:56:31.64ID:???

では、君の素晴らしい定義を教えてもらおうかな
NAME IS NULL [] 2017/04/26(水) 20:31:45.30:yyy4jyWJ
いきなり答えあわせじゃおもしろくないから
に笑われない定義は何かな?」ゲームしようぜ
NAME IS NULL [sage] 2017/04/26(水) 22:45:55.34ID:???
べつにの定義はどうでもいいけど
が何屋さんを自称するのか気になるわ
NAME IS NULL [sage] 2017/04/29(土) 00:21:18.65ID:???
まだほとぽりは冷めてないぜ
374 [sage] 2017/04/29(土) 01:07:23.45ID:???

おいやめろw
俺はこの業界にどっぷりのただのIT土方だよ。
定義があまりにもプロっぽい(同業っぽい)からちょっとつついてみただけだw
NAME IS NULL [sage] 2017/04/29(土) 09:51:21.13ID:???
すみません。質問させてください。
CREATE PROCEDUREについて、
ストアドプロシージャが既に登録されていたらDROP後、CREATE→OK
ストアドプロシージャが既に登録されていたらなにもしない  →NG
となるのはなぜなのでしょうか?

ttps://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.プロシージャ・・・
NAME IS NULL [] 2017/04/29(土) 19:13:45.28:SlYPafLa
create or replace
じゃ不満なのか?
NAME IS NULL [sage] 2017/04/29(土) 20:46:20.98ID:???
不満はないんだけど、なんでかなと。そういうものなんだと思っときます。
NAME IS NULL [sage] 2017/05/07(日) 03:32:11.96ID:???
物凄く初歩的で申し訳ないのですが、SQL Server2008をSQL Server2014へ
アップグレードでインストールした後、不要な2008を消したいんですが
普通にアンインストールでいいものなんでしょうか。
NAME IS NULL [sage] 2017/05/07(日) 06:15:58.60ID:???

たぶん良いんじゃないか。
結果を教えてくれ。
NAME IS NULL [sage] 2017/05/10(水) 00:57:31.27ID:???
ではないが
2008R2 Express SP3を2016 Expressにして、2008をアンインストールしてみた
軽く動かした感じでは動いてるっぽいけど
2008のアンインストールが色々手間だった

まあ実務マシンなら、俺ならアンインストールせずにスタートメニューだけ消しとく
NAME IS NULL [sage] 2017/05/10(水) 21:21:25.38ID:???
俺なら2008アンインストール、2016インストールするけど
NAME IS NULL [] 2017/05/11(木) 19:47:33.46:XdKWiRE4
Windows ServerでSQL Server 2012を入れております
SSMSでバックアップのスケジュールを確認しようとしたんですが管理にメンテナンスという項目がありません
SSMSを見てもExpressという表示はないんですが原因って他にありますか?
NAME IS NULL [sage] 2017/05/11(木) 19:51:28.91ID:???
ログインユーザーがsysadminじゃなかったってのは昔あったな
NAME IS NULL [sage] 2017/05/12(金) 13:25:14.41ID:???
ttps://msdn.microsoft.com/ja-jp/library/ms178127.aspx
Agent XPsが無効だとメンテナンスプランやらエージェント使えないんでは
あー、でもこれメンテナンスの項目は出てた気がするなあ
NAME IS NULL [sage] 2017/05/12(金) 14:33:52.18ID:???
今↓の現象が発生しました。

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

物凄い致命的な不具合だと思うんですが、みんなの大丈夫ですか?
NAME IS NULL [] 2017/05/12(金) 20:07:03.25:Kt4maARH

sysadminというのはロールですよね?
Administratorですし、sysadminにもチェックはありました
NAME IS NULL [sage] 2017/05/12(金) 22:11:13.31ID:???
SSMSってエディション関係ないからな。DBエンジンがEXPRESSだったって落ちじゃないのか
接続先のバージョンとか出てたっけ
NAME IS NULL [sage] 2017/05/13(土) 06:25:13.83ID:???
2016のssmsとexpress使ってるけど、imeの問題は出ないぞ
NAME IS NULL [sage] 2017/05/13(土) 07:09:40.03ID:???
Visual Studio 2015 Express 使ってるけどごくまれ(数ヵ月に一回ぐらい)IME がOnにならなくなる時がある
メモ帳とかを起動してIMEをOnにしたりするとVisual Studioでも普通に使えるようになるからあまり気にしてないけど
NAME IS NULL [sage] 2017/05/13(土) 11:11:12.87ID:???

項目は出ているけど開けなかった記憶あるわ
項目自体出てないのはの通りExpress使っているとかじゃないのかね
391 [] 2017/05/13(土) 23:35:10.24:X0tWj4fp
すいません、たぶんDBのほうがExpress使ってるかもしれません
どこで確認できますか?また自動でバックアップする方法とかありますか?
NAME IS NULL [sage] 2017/05/14(日) 00:45:41.95ID:???
SqlServerに特化したPowerShellがあるらしいけど、使ってる人いるのかな?
NAME IS NULL [sage] 2017/05/14(日) 01:42:00.54ID:???

マジで言ってるのかアレだなあ...
&#9642;&#65039;エディション確認
・繋いだインスタンスを右クリックでプロパティ
・masrerデータベースで
select @@version

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

expressで開発、検証じゃなく本番運用する気なら
悪いこといわんからstandard買って載せ替えるが宜しい
奉行とかPCAとかのパッケージバンドルかねえ
NAME IS NULL [] 2017/05/20(土) 15:16:05.49:BH3EK1xP
アップルラボ 詐欺 怪しい 疑惑 iPhone 修理 非正規店 グレーゾーン 韓国 中国
根本つとむ 中卒 ブサイク ブス キモい 詐欺師 生活保護
根本つとむ 逮捕 犯罪者 罪状 重要参考人 障害者 アスペルガー症候群
アップルラボ 被害者の会 壊れた おかしい 犯罪 故障 iPhone7 スティーブジョブズ
アップルラボ 脱税 iPad 脱獄 水没修理 MacPro 買取
アップルラボ 誇大広告 2ちゃんねるで宣伝 消費者センター 粉飾決済 恥 ダメ
アップルラボ 迷惑企業 最低 やめて欲しい 中卒 変 創価学会 中国
NAME IS NULL [sage] 2017/05/20(土) 18:14:01.91ID:???

> SqlServerに特化したPowerShellがあるらしいけど
どこの情報?
普通に [Data.SqlClient] 経由で使うのとなにか違うの?
NAME IS NULL [] 2017/05/23(火) 21:26:20.97:id3rm7dy
Hyper-V クラスタ上の仮想サーバー(4コア割当)にSQLServer2016stdをインストールしたとき、SQLServerの必要ライセンスを教えてください
NAME IS NULL [sage] 2017/05/23(火) 22:42:33.22ID:???

ttps://www.microsoft.com/ja-jp/licensing/learn-more/brief-server-virtual-environments.aspx
NAME IS NULL [sage] 2017/06/02(金) 21:45:56.38ID:???
SQLはmacでも使えますか?
NAME IS NULL [sage] 2017/06/02(金) 22:27:19.41ID:???

使えない
NAME IS NULL [sage] 2017/06/02(金) 22:47:59.88ID:???
SQL自体は使える(書ける)
NAME IS NULL [sage] 2017/06/03(土) 17:30:12.42ID:???
じゃやっぱりWinマシンを買うところからってことですね


使えないということと書けるの違いはどう理解すればいいですか?
NAME IS NULL [sage] 2017/06/03(土) 17:57:23.00ID:???

SQLとSQL serverの違いはわかってる?
NAME IS NULL [sage] 2017/06/03(土) 21:38:11.44ID:???
んと、SQLはプログラミング言語で
SQLserverはMS社のデータベース
NAME IS NULL [sage] 2017/06/03(土) 21:39:40.29ID:???

アンカー忘れましたが
NAME IS NULL [sage] 2017/06/03(土) 22:28:24.97ID:???
何に混乱しているかというと
SQLserverのWikiを読むと言語はc,c++,c#とある
でも他の本ではSQL自体をプログラミング言語と書いてある
そこでちょっと混乱
ttps://ja.m.wikipedia.org/wiki/Microsoft_SQL_Server
NAME IS NULL [sage] 2017/06/03(土) 22:59:56.99ID:???
その記載ってSQL Serverを作成した言語の話じゃないかな
NAME IS NULL [sage] 2017/06/03(土) 23:04:52.90ID:???

そういうことなのですか
ありがとうございます
ではもとい、Winマシンを買うのは必須ですね
NAME IS NULL [sage] 2017/06/03(土) 23:29:53.05ID:???
仮想環境入れて、そこでWindowsを動かすという方法もあるけれど
どういう目的で使うのか、どの位の頻度で使うのかにもよるだろうね
NAME IS NULL [sage] 2017/06/03(土) 23:45:52.82ID:???

会社は普通にWindows機なんで、macは自宅学習用です
プログラミング自体初めてなので家でも勉強しようと思って
NAME IS NULL [] 2017/06/04(日) 00:09:22.35:6QGLXM/f
macはバカが使うものだからバカになりたくなかったら今すぐ捨てた方がいいね
NAME IS NULL [sage] 2017/06/04(日) 00:14:22.87ID:???

そういう煽りには乗りませんので
NAME IS NULL [] 2017/06/04(日) 00:25:56.60:6QGLXM/f

煽りを装った本音なんだけどなあ
NAME IS NULL [sage] 2017/06/04(日) 00:34:24.00ID:???

必須じゃねーよ
NAME IS NULL [sage] 2017/06/04(日) 00:35:50.62ID:???

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

なら仮想環境に入れた方が早いな
NAME IS NULL [sage] 2017/06/04(日) 09:26:51.00ID:???


ありがとうございます

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

家に仕事持ち込むわけではないので、まずは会社のWindowsで慣れてから再度考えようと思います
NAME IS NULL [sage] 2017/06/04(日) 09:35:30.08ID:???
sqlを練習する程度ならmysqlでもいいんじゃないか?
Macでも動くし。
NAME IS NULL [sage] 2017/06/04(日) 10:27:16.37ID:???

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

そんなに驚くなよ。
sql server expressはwindows専用だが
それ以外のフリーなdbソフトは大体はMacでも動くんじゃないか?俺はMac持ってないが
NAME IS NULL [sage] 2017/06/09(金) 08:22:54.49ID:???
SQLServerのデータファイルの自動拡張がタイムアウトしたってイベントログ出てるんですが
自動拡張時のサイズ小さくすれば解決するもんなのかな?
書き込みが頻発するとディスクアクセスがボトルネックになりそうなんだが

そもそものタイムアウトが発生するところをケアすべきよね
やっぱ
NAME IS NULL [sage] 2017/06/09(金) 11:20:11.31ID:???

自動拡張の初期値はファイルサイズのX%なのでサイズがでかくなるにつれ拡張サイズも増えて処理がタイムアウトするから拡張サイズは固定値にした方が良いよ
ログファイルじゃなくてデータファイルならそもそものデータ見積もりが誤っているという話もあるが
383 [sage] 2017/06/14(水) 12:27:42.97ID:???
すんません、
「やってみたら?まぁ上手くいくわけないんだけどなwせいぜい絶望してファントム生んでろw誰もエンゲージしねーけどw」
って事かと思って保留してました。

実践していただいた方もいて、助かりました。やってみます。
自分のPCなんで最悪HDDのイメージ取ってから試せば何とでもなるんですけどね。
試行錯誤できる環境を作る時間がなくて。
でもHDDの空き容量もなくて。
そして人生の余裕もない。
もう死にたい。全てが嫌になった。
NAME IS NULL [sage] 2017/06/19(月) 23:23:03.91ID:???
SQL2014の自動拡張で質問です。
例えば10MBまたは100MBと指定して拡張されたタイミングまたはログというのは何処で確認できるものでしょうか?

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

ど素人なので的外れな事を書いているかもしれませんが何かヒント頂ければ幸いです。
NAME IS NULL [sage] 2017/06/21(水) 01:20:46.92ID:???
SSMSで管理のSQL Serverログとか
OSのイベントビューアでアプリケーションログとかになんか吐いてなかったっけ
NAME IS NULL [] 2017/06/21(水) 12:19:47.12:HMTE/EOf
なんでちょっとMSの中の人よりの言いかたなんだよw
NAME IS NULL [sage] 2017/06/21(水) 20:48:17.77ID:???
どの発言がどうMSの中の人よりなのか
NAME IS NULL [] 2017/06/21(水) 21:12:30.65:eFBPC0xl
気になるんだったらもう少し謙虚に聞いたら?
NAME IS NULL [sage] 2017/06/22(木) 23:55:36.11ID:???

ありがとうございます
ご鞭撻頂いた項目で確認したいと思います
NAME IS NULL [sage] 2017/06/23(金) 06:45:25.32ID:???

ご鞭撻?
NAME IS NULL [sage] 2017/07/02(日) 11:27:25.38ID:???
鞭打ちの刑
NAME IS NULL [sage] 2017/07/02(日) 17:23:55.73ID:???
質問させてください。

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

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

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

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

以上のような状況なのですが、
なにかわかる方がいらっしゃったらよろしくお願いします。
NAME IS NULL [] 2017/07/02(日) 17:37:33.40:9thF4go5

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

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

早速の返答ありがとうございます。

かならずしもIndex seekのほうがよいわけではないんですね。
統計情報の更新は調べてやってみることにします。
ありがごうとざいます。
NAME IS NULL [sage] 2017/07/02(日) 18:01:02.66ID:???
数万程度ならどんな実行計画でも時間は変わらない可能性大だが、
どうしても拘束しないたらヒント文を追加すれば?
NAME IS NULL [sage] 2017/07/02(日) 18:28:22.42ID:???

ヒント文でインデックスを指定できるんですね。
これでやってみて時間がかわらなそうであれば元の状態で行こうと思います。
ありがとうございました。
NAME IS NULL [sage] 2017/07/02(日) 19:24:58.07ID:???
1フィールドだけのテーブルがあって、その1フィールドにプライマリキーが設定されてるのを見るとなんか微妙な気分になるw
NAME IS NULL [sage] 2017/07/02(日) 21:27:03.96ID:???
クラスター化インデックスのあるテーブルってテーブルスキャンは発生しないと思ってんだが違うのか
俺の知る限り、テーブルスキャンするところはすべてクラスターインデックススキャンになるんだが

クラスターインデックスのフルスキャンはテーブルスキャンと実質同じだと思うんだが、何が違うんだろ
テーブルスキャンならクラスターインデックスのリーフページだけをたどれる?
NAME IS NULL [sage] 2017/07/06(木) 22:57:10.15ID:???
access単体でデータベースを作成するのと、SQLserver+Vbで作成するのは難易度はどのくらい違いますか?
NAME IS NULL [sage] 2017/07/07(金) 00:32:55.05ID:???
だいぶ前にミラーリングが非推奨の機能になっちゃったけど、これからはクラスタ作ってAlwaysOnでやるしか無いのかね
今時オンプレかよとは言わないで
NAME IS NULL [sage] 2017/07/07(金) 00:49:20.65ID:???

それだけの内容では色々分からなすぎて
双方の言語経験があるなら差はほとんどない、としか答えられない
NAME IS NULL [sage] 2017/07/07(金) 13:53:10.80ID:???

ミラーリングしたい理由はなによ
NAME IS NULL [sage] 2017/07/07(金) 14:15:59.58ID:???
ミラーリング、手軽で便利なのにな
NAME IS NULL [sage] 2017/07/07(金) 19:19:13.94ID:???

Standardのライセンス2つで安価、手軽に二重化出来ること
試しにAlwaysOn構築しようと思ったら、SQLServer外の条件で制約多くて
NAME IS NULL [sage] 2017/07/18(火) 22:16:07.37ID:???
SQL Server 2017 Release Candidate 1
ttps://blogs.technet.microsoft.com/dataplatforminsider/2017/07/17/first-release-candidate-of-sql-server-2017-now-available/

てか2016の次2017なのか…RTMには2018ぎりぎりだったり2018になってたりするんじゃ…
NAME IS NULL [sage] 2017/07/19(水) 01:16:59.53ID:???
MicrosoftはどうやってSQL ServerをLinuxへポートしたか、ついに2017リリース候補がローンチ
ttp://jp.techcrunch.com/2017/07/18/20170717how-microsoft-brought-sql-server-to-linux/
NAME IS NULL [sage] 2017/07/19(水) 07:37:48.82ID:???

AlwaysOnは知らんが、ミラーリングの場合、待機側はライセンス要らないよ
NAME IS NULL [sage] 2017/07/19(水) 10:59:44.53ID:???
ますますミラーリングから離れられないわな
AlwaysOnは1台につき1ライセンス必要だし
NAME IS NULL [sage] 2017/07/20(木) 00:52:16.15ID:???
ミラーリングでライセンスいらないのは、完全に待機のみの場合だけだったはず
ダウンタイムの短縮には役に立つけど、負荷分散には使えないぞ
NAME IS NULL [sage] 2017/07/20(木) 09:59:09.19ID:???
ミラーリングは負荷分散に使えないが
NAME IS NULL [] 2017/07/27(木) 22:18:19.62:Wb6w4MLZ
株式会社メビウス(mob)
ttp://matsuri.2ch.net/test/read.cgi/infosys/1501121465/
NAME IS NULL [sage] 2017/07/31(月) 21:23:54.39ID:???
SQL Server絡みの地雷率が高すぎてうんざりしてきた
windowsしか使えないのでこれ使いました!
プログラムはよくわかんないので中身は適当です!
十数年分の滅茶苦茶に蓄積されたデータは再利用できるようにしてください!
みたいのしかねえ
NAME IS NULL [] 2017/07/31(月) 21:46:50.58:lcWS9MWM

知識の蓄積もない、Microsoftは利用者を育てることが重要だと思ってないからな。
NAME IS NULL [sage] 2017/08/01(火) 02:12:40.31ID:???

サポート費用払う前提だがそれなりの対応してると思う
何か問題でもあったのか?
NAME IS NULL [sage] 2017/08/01(火) 08:09:16.36ID:???
はMSをディスってるんじゃなくてその利用者をディスってるんだろ
むしろそんな連中でもとりあえずのシステムが組めるMS製品群スゲーって話
まあ引き継ぎとかでうんざりする気持ちはよくわかるが w
NAME IS NULL [sage] 2017/08/01(火) 10:39:33.77ID:???

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

日本マイクロソフトのサポートもレベルがひどい
NAME IS NULL [sage] 2017/08/01(火) 12:48:27.45ID:???

いちゃもんつけたいだけのアホ乙 w
NAME IS NULL [] 2017/08/01(火) 13:30:45.92:XS4cIuUu

日本ユニシスおつ
NAME IS NULL [sage] 2017/08/28(月) 21:43:46.23ID:???
教えてください。

SQLServer の View でトリガを使って別のテーブルの編集を行いたいと思います。
ほぼこのページの通りに書いてみたのですが、View の参照元のテーブルにレコードを追加してもトリガが実行されないようです。
ttps://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にトリガを仕掛ければ問題なくやりたいことは出来るのですが。
ビューのトリガを動かすのには何か設定が必要なのでしょうか。
NAME IS NULL [sage] 2017/09/09(土) 20:24:20.28ID:???
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
NAME IS NULL [sage] 2017/09/09(土) 20:49:58.88ID:???
実際酷いのもいるけど、そういうのはむしろORACLE出身だったりするw(内部結合のビューのみでやりきろうとする信じられない低レベルもいる)
SQL Serverは同一ストアド内に制御文と問合せ文が同居できるため工夫の範囲が広く、むしろORACLEよりレベルの高い技術者も多いとも聞く

いずれにせよ前任者はそれを0から構築したわけで(おそらく低予算で)、前任者が悪いんでなく、引き継げない後任者のレベルが低いと考えるべき
前任者のレベルが低いと言うならむしろ引き継ぐだけでなく改善して、処理速度を数十倍〜数百倍に上げてみせるべき
NAME IS NULL [] 2017/09/27(水) 13:50:33.70:WjHJ/OaP
復旧モデルについてなのですが、「完全」よりも「単純」の方が余計なことをしない分
処理速度自体は総じて速いという認識で良いのでしょうか?
NAME IS NULL [sage] 2017/09/27(水) 15:25:41.88ID:???

差が出るのは最小ログ記録が有効になる操作のみ
ttps://technet.microsoft.com/ja-jp/library/ms191244(v=sql.105).aspx
NAME IS NULL [sage] 2017/09/27(水) 19:15:37.86ID:???

処理速度はほとんど変わらないけど、完全はトランザクションログのメンテナンスを疎かにしてトラブル起きやすいイメージ
NAME IS NULL [sage] 2017/09/27(水) 22:49:22.28ID:???
単純でもトランザクションのロールバックはできるわけだから、ログは取ってるんだが
一括ログ可能な操作だと、単純でも一括ログ方式の最少ログしか取ってないのかな

そうじゃないなら、速度的には一括ログが一番早いんじゃないんじゃね
体感できるとは思えんけど
NAME IS NULL [sage] 2017/09/28(木) 01:01:37.66ID:???
バッチ処理で大量にデータを
ローディングするようなシステムではそれなりに差が出るよ
BULK INSERTでだいたい20~25%くらい短縮できる
NAME IS NULL [sage] 2017/09/29(金) 16:50:08.86ID:???

完全と一括ログの比較じゃなくて
単純より一括ログの方が早いって話?
NAME IS NULL [sage] 2017/09/29(金) 23:26:37.10ID:???

単純は一括と同じでしょ
そこは試してないけどマニュアルにはそう書いてるよ
NAME IS NULL [sage] 2017/10/04(水) 21:53:17.22ID:???
SQL Server 2017 RTM
ttps://www.microsoft.com/ja-jp/sql-server/sql-server-2017
ttps://blogs.msdn.microsoft.com/sqlserverstorageengine/2017/10/02/sql-server-2017-available-for-download/
NAME IS NULL [sage] 2017/10/05(木) 09:42:17.95ID:???
まだ2012R2なのに
NAME IS NULL [sage] 2017/10/05(木) 20:59:09.87ID:???
まだ2005が現役で動いているのに
NAME IS NULL [sage] 2017/10/05(木) 21:56:52.98ID:???

それはヤバくね?
NAME IS NULL [sage] 2017/10/05(木) 22:00:44.94ID:???

保守契約切れても何も言ってこないので他社システムに移行したと思ったら、単にケチってただけだったという・・・
NAME IS NULL [sage] 2017/10/06(金) 22:25:21.69ID:???
うちの社内システムなんてSqlServer2000+VB6だぞw
NAME IS NULL [sage] 2017/10/07(土) 14:58:41.23ID:???
安定稼働してるDBMSを変更する理由がないからなぁ
ORACLEとかサポート切れたら不安しかないけど
NAME IS NULL [sage] 2017/10/07(土) 17:00:02.65ID:???

セキュリティって知ってる?
NAME IS NULL [] 2017/10/07(土) 17:07:32.43:72uw01jP
格好の標的だね
metasploitみたいの使って簡単に攻撃されるよ
480 [sage] 2017/10/07(土) 17:54:07.20ID:???

そういやいまだにoo4o使ってるシステムもあったw
NAME IS NULL [sage] 2017/10/07(土) 17:57:44.46ID:???

うちのこと?
NAME IS NULL [sage] 2017/10/08(日) 22:37:59.43ID:???
そもそもDBに不特定多数が直接接続できるシステムがまれだと思うが
NAME IS NULL [] 2017/10/08(日) 22:42:53.11:XmeriWwC
そもそもそういう発想がセキュリティを理解してない
NAME IS NULL [sage] 2017/10/08(日) 22:43:14.23ID:???
いやまあSQL Slammerみたいな例もあるから何とも言えんけど
DBサーバそのものがネットワークに晒されてるような環境とそうじゃない環境じゃ
求められるセキュリティ強度も違うんじゃないかね
NAME IS NULL [sage] 2017/10/09(月) 06:16:11.40ID:???

DBに(社内の)不特定多数が直接接続できるのはまれだと思うがDBが入ってるサーバーに(ログインはできないけど)直接接続できるケースは多いと思うぞ
NAME IS NULL [sage] 2017/10/09(月) 09:17:26.00ID:???
別サーバーからSSMSからは接続出来ないのに
sqlcmdからは操作出来ちゃうアホな設定のDBがあったなあ
NAME IS NULL [sage] 2017/10/09(月) 15:57:30.46ID:???

そんな設定できるんだっけ?
NAME IS NULL [sage] 2017/10/09(月) 17:49:41.05ID:???

技とそういう設定にしてるんじゃないか?
NAME IS NULL [] 2017/10/16(月) 09:56:16.87:cuhMHRkq
SSMSの最新版が出ているようですが、入れると何か良い事ありますか?
NAME IS NULL [sage] 2017/10/18(水) 23:00:33.28ID:???
病気が治って彼女が出来て宝くじに当たって出世しまくるなどいい事ずくめ
NAME IS NULL [sage] 2017/10/21(土) 12:57:32.75ID:???
Queryのウインドウでは、色付きで分かり易くクエリが表示出来ますよね。
コピペしてワードなどに貼り付けるとその色情報が失われますが、
どうにかして文字だけでなく色もコピペできませんか?
NAME IS NULL [sage] 2017/10/21(土) 13:11:28.80ID:???

文法読み取って色表示しているのがクエリエディタの機能だから無理じゃね
NAME IS NULL [sage] 2017/10/21(土) 14:17:38.53ID:???

同じ機能を持ったテキストエディタに張り付ければいいじゃん
NAME IS NULL [sage] 2017/10/21(土) 17:12:43.60ID:???
例えば社員テーブルに複数の社員のデータを一気に追加する場合に
社員番号をキーとして、
もしテーブルに該当社員がいればUpdate、
いない場合はInsertしたいのですが、
そう言う処理を簡単にやるコマンドはありますか?
NAME IS NULL [sage] 2017/10/21(土) 17:19:04.06ID:???

MERGE
NAME IS NULL [] 2017/10/21(土) 17:19:21.04:VrrtTrmz

MERGE
ttps://technet.microsoft.com/ja-jp/library/bb522522%28v=sql.105%29.aspx?f=255&MSPPError=-2147217396
NAME IS NULL [sage] 2017/10/21(土) 17:57:32.74ID:???
ありがとうございました。
NAME IS NULL [sage] 2017/10/21(土) 21:16:04.76ID:???

「形式を選択して貼り付け」じゃないの?
rich text formatでクリップボードにはコピーされてるはず
名無しさん@そうだ選挙に行こう! Go to vote! [sage] 2017/10/22(日) 07:09:30.09ID:???
その後、mergeをいろいろ試しています。
社員更新データを#で始まるローカル一時テーブルに入れておいて、
社員テーブルにマージする方針で出来たのですが、そのやり方で良いでしょうか?
調べていると、Temporal tablesと言うのもあるようですが今回のマージ処理に使うと何か良い事ありますか?
名無しさん@そうだ選挙に行こう! Go to vote! [sage] 2017/10/22(日) 13:25:38.27ID:???
一時テーブルは大量データには向かない
更新頻度が低いならまあ
名無しさん@そうだ選挙に行こう! Go to vote! [sage] 2017/10/22(日) 13:32:29.24ID:???

sqlserver上級者の人ならどういう手法を使うのか教えて下さい。
名無しさん@そうだ選挙に行こう! Go to vote! [sage] 2017/10/22(日) 13:40:36.65ID:???
そもそも一旦一時テーブルに入れる必要性が分からんのにどういう手法とか言われても困るだろうよ
名無しさん@そうだ選挙に行こう! Go to vote! [sage] 2017/10/22(日) 13:48:30.05ID:???
##付きも一時テーブル?
名無しさん@そうだ選挙に行こう! Go to vote! [sage] 2017/10/22(日) 14:58:58.59ID:???

名前紛らわしいけど
temporary tableとtemporal tableは全く別物

テンポラリテーブルは一時テーブル
テンポラルテーブルは決まった日本語訳ないけど”時間テーブル”みたいな意味
バージョン管理や履歴管理のために使う
名無しさん@そうだ選挙に行こう! Go to vote! [sage] 2017/10/22(日) 15:16:21.15ID:???

なら目的とか要件を提示しろよ
NAME IS NULL [sage] 2017/10/22(日) 21:45:55.65ID:???

テーブルに入れずにmergeできる?
NAME IS NULL [sage] 2017/10/22(日) 21:48:59.23ID:???
できる
NAME IS NULL [sage] 2017/10/22(日) 21:51:05.13ID:???

ちょっと書いてみてよ。
NAME IS NULL [sage] 2017/10/22(日) 23:17:00.45ID:???

マニュアル読めよ
ダメな子だな
NAME IS NULL [sage] 2017/10/23(月) 12:22:06.75ID:???
他は知らんがSQLServerのmergeはただの場合分けでupdateとinsert書いてるだけなんだから
updateとinsertに書けることは大体書ける
NAME IS NULL [sage] 2017/10/23(月) 12:44:14.56ID:???

あっ、逃げた w
NAME IS NULL [sage] 2017/10/23(月) 15:13:53.67ID:???

マニュアルに例も含めてまんま書いてるのにそれすら読めないのか?
仕事でデータベースさわってるなら今すぐ辞めろ
みんなが迷惑する
NAME IS NULL [sage] 2017/10/23(月) 15:27:52.10ID:???
505辺りから質問者とは別の人だろ
NAME IS NULL [] 2017/10/23(月) 15:28:32.51:CzSV0ugc
普通のワークテーブルも作ったらいけない決まりがあるのか?
NAME IS NULL [sage] 2017/10/23(月) 21:08:58.07ID:???

具体的に書けないなら黙ってろよ
マジでウザイわ
NAME IS NULL [] 2017/10/23(月) 21:11:50.12:mf1jBI9V
データの途中経過も分からない作りにしたい人はどういう感覚なんだろうね。
NAME IS NULL [sage] 2017/10/23(月) 21:58:30.84ID:???

503の書き方からして同一人物だろ
NAME IS NULL [sage] 2017/10/29(日) 00:25:48.63ID:???
SQL Serverの操作に特化したPowerShellがあるって聞いたんだけど
このスレには使ってる人いないのかな?
SSMS使えない環境だとそれなりに威力を発揮するのか知りたかったのだが
NAME IS NULL [] 2017/10/30(月) 22:53:25.46:0uDb1bS4
壊滅的にcliのセンスがないmsにそんな期待するだけ無駄
NAME IS NULL [sage] 2017/10/30(月) 23:07:01.23ID:???
sqlserverでpowershell使っている人いないだろ

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

あるいはベンダーがクライアントの設定を変えたい時psでスクリプト作ってクライアント送って実行してもらうとかじゃね
NAME IS NULL [] 2017/10/31(火) 11:37:21.58:IzoEenp0

SQL Serverそのものが、PowerShellのスクリプトを吐くんだが?
NAME IS NULL [sage] 2017/10/31(火) 12:30:18.27ID:???

>SQL Serverそのものが、PowerShellのスクリプトを吐く
kwsk
どこでどんなスクリプト吐くんだ
それはクライアントツールじゃなくてSQL Serverそのものが吐いてるのか?
NAME IS NULL [] 2017/10/31(火) 13:10:45.30:IzoEenp0

management studio
NAME IS NULL [sage] 2017/10/31(火) 17:24:38.56ID:???

SSMSがどんなサーバ設定のスクリプト吐くの?

まあそもそもSSMSはクライアントツールであって、それがPSスクリプト吐いたからって、SQL ServerそのものがPSスクリプト吐いてるわけじゃないんだけど
NAME IS NULL [sage] 2017/10/31(火) 20:58:07.94ID:???
かなり古い記事だが・・・

【管理効率化への挑戦】PowerShell × SQL Serverが実現する"新しいDB管理"
ttp://news.mynavi.jp/articles/2010/05/19/ps_u/
NAME IS NULL [sage] 2017/10/31(火) 22:56:42.42ID:???
教えてください。

他のジョブの状態によって特定のジョブを実行するかどうかを判定するストアドを書きたいと思います。
ジョブの状態は システムのストアドの 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 するとエラーが発生することなのですが、
こういうケースでは一般にどのように対応するのが定石なのでしょうか。
NAME IS NULL [sage] 2017/10/31(火) 23:03:51.74ID:???

ストアドをテーブル関数化すればselect使えるからうまくいくかも
NAME IS NULL [sage] 2017/10/31(火) 23:48:42.51ID:???
とりあえずエラートラップして握りつぶせば良いんじゃね
NAME IS NULL [sage] 2017/10/31(火) 23:57:22.70ID:???

ttps://stackoverflow.com/questions/653714/insert-results-of-a-stored-procedure-into-a-temporary-table

sp_help_jobの結果をテーブルに保存するのは出来るけど
ジョブの依存性管理はSSISかサードパーティのジョブスケジューラ使わないとキツイよ
スケジュール調整のたびにスクリプト自体に手を入れることになるからすぐ破綻する
SQL Serverの泣き所
530 [sage] 2017/11/01(水) 22:25:35.36ID:???
みなさん、ありがとうございます。


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


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


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

スケジュール調整の件、覚えておきます。
今回のは幸いに単純なのでなんとかなりそうなのですが。すっきりしないなぁ。
NAME IS NULL [sage] 2017/11/09(木) 01:07:32.60ID:???
初心者です。
二つのテーブルが有って、その両者に同じ名前のカラムが有って、それらはそれぞれプライマリキーに設定されています。
その二つのテーブルをマネージメントスタジオでダイアクラムを表示してリレーションシップで結びます。
これで外部キーの設定が出来たと思ったのですが、そうでは無いようでした。
外部キーの設定には、また別の操作が必要でした。
ここで疑問なのですが、二つのテーブルをダイアクラムでリレーションシップの線を結んだだけの状態は、どういう状態なんですか?
NAME IS NULL [] 2017/11/09(木) 12:30:07.76:3vuEsp4f
見てのとおり、二つのテーブルをダイアクラムでリレーションシップの線を結んだだけの状態、です。
NAME IS NULL [sage] 2017/11/09(木) 13:09:26.62ID:???

なるほど。
その場合、リレーションシップを結んでいるかいないかで
それらのテーブルに対するSQLの結果が異なる場合はありますか?
つまり単に線で結んでいるだけなら、SQLには影響しないと考えて良いですか?
NAME IS NULL [sage] 2017/11/09(木) 13:19:48.42ID:???
SQL欄表示すりゃ何してるか分かるよ
NAME IS NULL [sage] 2017/11/10(金) 10:43:05.09ID:???
SQLServerというよりか、ManagementStudioの話なんですが
ビューの作成や保守が死ぬほど使いづらいです。

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

ストアドの作成/保守するときと同じく
CREATE(ALTER) VIEW 〜 っていう画面にできないんでしょうか。
NAME IS NULL [sage] 2017/11/10(金) 12:10:30.05ID:???

もう全部コードで書きなよ。
NAME IS NULL [sage] 2017/11/10(金) 12:56:12.39ID:???
新規クエリタブ開いてコピペしろ
アホらしいがこれが一番早い
NAME IS NULL [sage] 2017/11/10(金) 13:18:24.75ID:???
新規に作る分にはいいんですが
以前に作ったビューの手直しをするとき
SQL文を勝手に整形するのだけでも止められないですかねぇ
NAME IS NULL [sage] 2017/11/10(金) 13:22:51.03ID:???
ムリダナ(・x・)
NAME IS NULL [sage] 2017/11/10(金) 18:53:31.86ID:???
普通viewなんかexcelの計算式でviewのsql文作ってコピペで張り付けて作るだろう
項目数が100以上あろうがexcelのファイル定義書があれば数分でできるぞ
NAME IS NULL [] 2017/11/10(金) 18:57:49.31:+oA2Me4B
エクセルにsql作れる関数なんかあったっけ?
NAME IS NULL [sage] 2017/11/10(金) 19:42:05.74ID:???

関数はない計算式だよ

例えば、excelのA列にカラム名
B列に別名があったら
C列1行目に=",["&A1&"] AS ["&B1&"]"
と計算式を1つ作り下へコピーすれば
カラム部分のSQL文が簡単にできる
sumしたいカラムとかも計算式を工夫すれば簡単にできる。
NAME IS NULL [] 2017/11/10(金) 21:18:25.39:5FHSQ6Bb
そういう話ではない。初心者なのかSQLスクリプトを使用する習慣がないようだよ。
NAME IS NULL [] 2017/11/15(水) 10:18:50.96:6Q/c6Tcb
LEFT JOINする時に、両方のテーブルに例えば共通のidと言うカラムがあると、
select * from T1 left join T2 on T1.id = T2.id;
を実行すると、idのカラムが二個出て来ますよね。
それを一個にするにはどうしたら良いですか?
select * をやめて必要なカラムを書き並べて取り出すしか無いですか?
NAME IS NULL [sage] 2017/11/15(水) 10:42:03.36ID:???
はい
NAME IS NULL [sage] 2017/11/15(水) 10:51:52.76ID:???

そこを何とかお願いします
NAME IS NULL [sage] 2017/11/15(水) 11:44:10.62ID:???
内部結合ならともかく、外部結合だと
その二つは違う場合があるんだが
NAME IS NULL [sage] 2017/11/15(水) 11:48:01.92ID:???
だな
NAME IS NULL [] 2017/11/15(水) 12:19:38.98:2A3D0a21
で?
NAME IS NULL [sage] 2017/11/15(水) 12:29:05.63ID:???

select T1.* ,T2.hage1 ,T2.hage2 from T1 left join T2 on T1.id = T2.id;
とか T2だけカラムを羅列する
NAME IS NULL [] 2017/11/15(水) 12:43:55.38:LwMIMZHH
また自演か
NAME IS NULL [] 2017/11/15(水) 14:31:55.25:6Q/c6Tcb

>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では出来ませんか?
NAME IS NULL [sage] 2017/11/15(水) 14:34:51.14ID:???

試してみれば?
NAME IS NULL [sage] 2017/11/15(水) 22:24:07.29ID:???

お前は髪が薄い俺を怒らせたから教えない
NAME IS NULL [sage] 2017/11/16(木) 09:20:05.84ID:???

少し工夫したら出来ました。
NAME IS NULL [] 2017/11/16(木) 12:27:44.35:RhBRQtps
ハゲの事を薄毛って言うの本人だけ説
NAME IS NULL [sage] 2017/11/23(木) 21:49:46.78ID:???
質問なのですが
sqlcmdやbcpでリモートのSqlServerにログインする場合
パスワードを何度も間違えても特にロックアウトされたりとかはしないですよね?
NAME IS NULL [sage] 2017/11/23(木) 21:55:28.92ID:???

Windows認証ならADやPCのローカルポリシーでパスワードのロックアウト設定引き継ぐことはあるよ
sa認証は予め設定する必要あるけど
NAME IS NULL [sage] 2017/11/24(金) 22:42:10.74ID:???
マイクロソフトのサイト行くとSqlServerのサンプルデータベースとして
「AdventureWorks」ってのが出てくることが多いんだけどあれって昔からあるよね?
あれの元ネタというか由来ってなんなのかな?
563 [sage] 2017/11/27(月) 04:37:45.34ID:???
誰もわからんか・・・
自分も調べたけどわからなかった・・・orz
Accessにも出てくるし、20年来の謎
NAME IS NULL [sage] 2017/11/27(月) 08:17:32.83ID:???
サンプルだからテキトーに付けた名前だろ
下手に実在の会社と被ると色々面倒だからそこら辺は調べてるとは思うけど
NAME IS NULL [] 2017/11/27(月) 17:09:44.64:k8i9IH/m
AdventureWorksだと、ただの検証用という意味で、何のひねりもない。
NAME IS NULL [sage] 2017/11/29(水) 06:41:31.17ID:???
変わるらしいぞ

ttps://blogs.msdn.microsoft.com/dataplatjp/2016/06/23/sql-server-2016-changed/
「今まで慣れ親しんだ AdventureWorks ではなく、Wide World Importers が今後のサンプルのメインストリームになります」
NAME IS NULL [sage] 2017/11/29(水) 17:56:41.10ID:???

そんな情報良く気付くなあ。感心
NAME IS NULL [sage] 2017/12/04(月) 22:24:53.03ID:???
SSMSってインストールしたユーザーならWindows認証は必ず通れると思っていたんだけど
入れないって連絡きたけどそんなことってあるのか?
NAME IS NULL [] 2017/12/04(月) 22:27:52.00:6wISNT0k
INSERTやMERGEでは
VALUES ( values_list)
で沢山の値を指定出来ますが、生成されるSQL文は何文字以内などの制限はありますか?
例えば一気に100万件くらいのデータを追加しても正常に動きますか?
何らかの制限があれば教えて下さい。
NAME IS NULL [sage] 2017/12/05(火) 13:21:31.06ID:???

結構前のVerだとインスコ時に明示的に追加してやらんとならんかったような


1ステートメントあたりの文字数制限はあった気がする
それ以内なら何千万行でも問題ない
NAME IS NULL [sage] 2017/12/05(火) 14:41:05.87ID:???
SSMSをインストールしたら誰でもDBにログインできるってなら
俺のPCは世の中の全てのSQL Serverにつながるのかね
NAME IS NULL [] 2017/12/05(火) 19:19:58.29:75Z5+bpM

どういうバカの思考回路だとそんな結論になるのかちょっとだけ気になるよ
NAME IS NULL [sage] 2017/12/05(火) 19:47:15.06ID:???
他人の夢の中にログインできるDC mini が欲しい
NAME IS NULL [sage] 2017/12/05(火) 19:58:36.60ID:???

>SSMSってインストールしたユーザーならWindows認証は必ず通れると思っていた
NAME IS NULL [] 2017/12/05(火) 20:20:32.04:75Z5+bpM

ああそうか「ユーザー」をキミ自身のことだと考えたわけか
なかなか新鮮な文脈解釈だと思うよ
NAME IS NULL [] 2017/12/07(木) 13:42:17.87:l7erEtxE
LinuxでSSISをインストールしたいんだけど、エディッション選択で何を選んでも
”Could not write Licensing information”と出て先へ進めない。

SQL Server本体の時はDevelopper Editionを問題なくインストールできたのになんでよーー
NAME IS NULL [] 2017/12/07(木) 18:44:45.88:IMylgnN4

エラーメッセージを素直に解釈すれば、パーミッションの問題たろうに。
NAME IS NULL [sage] 2017/12/08(金) 08:11:01.53ID:???

バージョン聞くの忘れたけど多分2008か2012なんだよね
調べてみます
ありがとう
NAME IS NULL [sage] 2017/12/08(金) 16:45:10.45ID:???


昨日現象が出て、今スレ開いたらそのものずばりの人がいてやったーと思ったらまだ解決してねえ!
NAME IS NULL [] 2017/12/11(月) 17:55:36.58:ExZ8B70/
【ブーメラン】漫画家(27)「放射脳は無知」→急死 (;゚Д゚) アニメーター(39)「政府は正しい」→急死
ttps://rosie.5ch.net/test/read.cgi/liveplus/1512349462/l50
【ナニコレ】早朝死亡2名、マクド死亡2名、バンド死亡3名→皆30日、マラソン危篤3名、柏市隣2名
ttps://rosie.5ch.net/test/read.cgi/liveplus/1512269420/l50
NAME IS NULL [sage] 2017/12/13(水) 21:30:09.63ID:???
全くの無知からSQLサーバーの担当になりました。
データベースからデータを引っ張ったりして資料作成する業務なんですが、いい勉強方法ありませんか?
引き継ぎも無しに任されたので混乱してます
NAME IS NULL [sage] 2017/12/13(水) 21:43:37.22ID:???

とっつきやすいのはMSの自習書あたりかね
NAME IS NULL [sage] 2017/12/13(水) 22:55:55.46ID:???
作成したDBをSSMSで削除したいのですが、使用中で削除出来ない場合があります。
最悪、サーバーを再起動すれば削除出来るんですが、簡単に削除する方法はありますか?
NAME IS NULL [sage] 2017/12/13(水) 23:46:30.65ID:???
接続してるユーザ全部落とせばいけるんじゃね
NAME IS NULL [sage] 2017/12/14(木) 00:01:59.92ID:???

誰も接続してないんですが、
NAME IS NULL [sage] 2017/12/14(木) 00:02:51.71ID:???

某ブログで紹介してたこのスクリプト使ってる
ttps://kashfarooq.wordpress.com/2013/02/20/how-to-force-sql-server-to-drop-db-connections/
NAME IS NULL [sage] 2017/12/14(木) 12:19:58.71ID:???

それあかんやつやろ
ハッキングされとんで
NAME IS NULL [sage] 2017/12/14(木) 12:51:38.09ID:???
SMS 17使っていて、更新があると出るのでクリックするとダウンロードサイトが開くが
通常のインストーラーしか見当たらない。Updateはどこにあるの?
NAME IS NULL [sage] 2017/12/15(金) 10:10:54.10ID:???

使用状況モニターから掴んでいるプログラムを強制終了
NAME IS NULL [sage] 2017/12/17(日) 22:23:55.62ID:???
c#でEFの質問はここでしょうか?
NAME IS NULL [sage] 2017/12/17(日) 22:38:01.11ID:???
どんな思考経路でそんな結論に至ったのか
NAME IS NULL [sage] 2017/12/17(日) 22:54:35.12ID:???
同じMSだからだよ。それくらい気付けよな。
NAME IS NULL [sage] 2017/12/17(日) 23:06:11.41ID:???

こっちだけどEFじゃろくな回答貰えないと思う
ttps://mevius.5ch.net/test/read.cgi/tech/1511872248/
NAME IS NULL [sage] 2017/12/18(月) 10:37:47.27ID:???
ライセンスの話で恐縮ですが

SQL Server2016のライセンスを解説します
ttp://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台ちょっとです。
NAME IS NULL [sage] 2017/12/18(月) 11:20:20.87ID:???

msに聞けよw
NAME IS NULL [sage] 2017/12/18(月) 11:39:53.12ID:???
グループ会社が絡む複雑な話だったらマイクロに相談するけど
よくある中小企業のサーバー1台、クライアント50台ちょっと、という実に普通の話だもんで
NAME IS NULL [] 2017/12/18(月) 19:01:41.72:WUe68RNI
グループ会社が絡んでも別に複雑じゃないけどクロソにはとりあえず相談するだろ
NAME IS NULL [sage] 2017/12/18(月) 19:04:02.94ID:???

コアライセンスのがいいね
ただ今後SQLServer増やす予定があるならcalは他のサーバーでも
使えるのでサーバーcalライセンスのほうがいい
NAME IS NULL [sage] 2017/12/18(月) 19:10:55.79ID:???
その辺りのライセンス云々は富士通とかベンダ解説資料がぐぐると良く引っかかるよね
同じようなことしたけど、VL価格とか出てくると更に訳がわからなくなって辛かった記憶有るわ
NAME IS NULL [sage] 2017/12/27(水) 13:39:13.96ID:???
ALTER TABLE テーブル名
SET ( LOCK_ESCALATION = DISABLE )

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

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

ちなみに

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

だと当然にして即座に通る
NAME IS NULL [sage] 2017/12/27(水) 13:43:23.90ID:???
ちなみに 主キーじゃない項目 = YY は 主キー=XX とは全く別レコード

2行目のupdateした直後にロックのかかり具合を見ると
type=PAGE、request_mode=IX と type=KEY、 request_mode=X
がそれぞれ、数個出現してる
NAME IS NULL [] 2017/12/27(水) 19:25:55.49:lvRR+7xm
SELECTで行ロックしたいのかどうかがわからない。

あなたの説明だと行ロックしたいのか、ただロックエスカレーションをどうにかしたいのか、なんだかわからない。
NAME IS NULL [sage] 2017/12/27(水) 20:08:35.42ID:???

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

ここみて32bitのAccessDatabaseEngine.exeをインストールすればよい
ttp://plus-sys.jugem.jp/?eid=446

officeの64bitが入ってたら一旦アンインストールすれば普通にインストールできる
NAME IS NULL [] 2017/12/27(水) 21:23:20.87:FlxrmEMU
>> 602
ロックエスカレーションを止めたかどうかまずは確認しろ
ttps://www.projectgroup.info/tips/SQLServer/MSSQL_00000016.htmlhttps://www.projectgroup.info/tips/SQLServer/MSSQL_00000016.html
NAME IS NULL [sage] 2017/12/27(水) 21:39:07.90ID:???

ここのリンク先は参考にならないわ
sqlserverやosのbitは無視して使いたいaccessファイルのbit基準でAccessDatabaseEngine.exeを
msからダウンロードしてインストールすればよい
NAME IS NULL [sage] 2017/12/28(木) 02:48:09.70ID:???
>>607
Officeが既に32bit版なので、32bit版のACE.OLEDBは入っていたので、32bit版のAccessDatabaseEngine.exeはインストールしたことはありませんでした
試してみます
レスありがとうございました
NAME IS NULL [sage] 2017/12/28(木) 03:10:35.02ID:???
普通に32ビットのACCESS入れたら
32ビットのSQLServerクライアントも入ったと思ったがなぁ
NAME IS NULL [sage] 2017/12/28(木) 03:25:09.72ID:???
もしかして、SQLServerからACCESS(のデータベース)にリンク張りたいって話か?
だったらSQLServerと同じビット数のACE入れないとダメだぞ

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

どうしてもやりたいならのリンク先
NAME IS NULL [sage] 2017/12/28(木) 03:44:32.78ID:???

ALTER TABLEでLOCK_ESCALATION = DISABLE したとしても
ロックエスカレーションが完全に禁止されるわけじゃないぞ

そもそも、そのselectとupdateは同じトランザクションなのか?
分離レベルは何でやってるのとか色々考慮点はあるんだが
NAME IS NULL [sage] 2017/12/28(木) 04:16:09.80ID:???

インテントロックは行レベルで取得されない気がしたんだがなぁ
そもそも、ページにIXかかっても、そのページにIXロックかけれるんだぜ
(もちろん行単位のロックが競合しないとか条件はあるが)
601 [sage] 2017/12/28(木) 09:30:08.82ID:???

selectは行ロック不要です。

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

たった1行のupdateに対して、かなり広範囲にロックかかってる気がしてならないのです
NAME IS NULL [sage] 2017/12/28(木) 09:33:45.08ID:???
一つ考えられるのは、
updateで1行を更新するとき、その項目はインデックス(非クラスタ)の一部になってます。

まさかインデックスに使われている項目を更新すると
さながらテーブルロックのような状態になるなんてことないですよね?
NAME IS NULL [sage] 2017/12/28(木) 13:00:00.38ID:???

インデックスの項目更新したらインデックスの再構成しないと遅くなりそう
インサートとデリートでインデックス項目変更したほうがいいんじゃね
NAME IS NULL [sage] 2017/12/28(木) 16:51:57.21ID:???

だからIXロックはIXロックをブロックしない
IXロックがブロックの直接の原因じゃない

たとえばファントムリード防止したかったら、範囲ロックせざるを得ないんだが
そのあたり理解してる?
NAME IS NULL [sage] 2017/12/28(木) 19:28:33.72ID:???
>>607>>610
自己解決できました
32bit環境で機能していたのは確認していましたが、32bit版のACE.OLEDBはなくJET4.0だったので、32bit環境でACE.OLEDBでためしたところうまき行きませんでした
結果は、64bit環境と同じエラーで、セキュリティの問題でした
JET4.0では使えるのにACE.OLEDBではダメと言う状況で、SQLServerの実行アカウントをネットワークサービスアカウントではなく、ローカルのユーザにして対応できました
NAME IS NULL [] 2017/12/29(金) 09:16:03.77:FyU/cwrw

素人は口出すな
NAME IS NULL [] 2017/12/29(金) 09:20:54.56:FyU/cwrw

それぞれ別レコードで、かつUPDATE、SELECTの順に行う理由がわからない。

別のレコードであればSELECTしてから、UPDATEでもいいんじゃないのか?

またはUPDATEしたあとにコミットしてからSELECTすればいい。
NAME IS NULL [sage] 2017/12/29(金) 10:08:58.24ID:???

nolockオプションつけてやってみれば?
ただし一瞬消えてしまうようですがリンク参照
ttp://bxdxmx.hatenablog.com/entry/20090828/1251444766
内部的にはdelete とinsertでやってるからロックされているかも
NAME IS NULL [] 2017/12/29(金) 11:04:43.57:dtNZwIie
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

SEPQX7O4N7
NAME IS NULL [sage] 2018/01/01(月) 12:26:46.33ID:???
テーブルの中のカラム名のうち、Identity属性を持っているものを取り出す方法
はありますか?
NAME IS NULL [sage] 2018/01/05(金) 23:34:44.66ID:???
sys.columnsでis_identity=1のもの検索すれば良いんじゃね
NAME IS NULL [sage] 2018/01/23(火) 16:28:39.64ID:???
初めてインストールしたは良いけど、起動して新規のデータベースをつくるにはどうするのかが分からん(-_-;)
NAME IS NULL [sage] 2018/01/23(火) 16:31:34.95ID:???
SSMSで作ってどうぞ
NAME IS NULL [sage] 2018/01/23(火) 17:04:59.69ID:???
 さん、ありがとうございます。
SSMSというのをインストールして起動したら、なんか分かるような気がしてきました。
Accessとそんなに変わらんだろうって勝手に思ってたので焦ってます(笑)
NAME IS NULL [] 2018/01/23(火) 19:29:57.39:a3XdT7kq
焦らんでも中身はAccessとそんなに変わりなく使えるから落ち着いてどうぞ
NAME IS NULL [sage] 2018/01/24(水) 01:06:35.63ID:???
ACCESSはフロントエンドとDBMSと一体だからな
SQL ServerはDBMSだけだし

ACCESSからSQL Server使うでもいいんじゃない
まっさらな新規DB作るのだけ苦労するかもしれんが
NAME IS NULL [sage] 2018/01/26(金) 05:35:03.89ID:???
ssmsでカラムの表示の順番って指定出来る?
NAME IS NULL [] 2018/01/26(金) 12:49:54.65:pxozcjcA

ビューでも作れば?
NAME IS NULL [sage] 2018/01/26(金) 19:36:22.24ID:???

編集画面のこと言ってるなら無理だと思う
NAME IS NULL [sage] 2018/01/30(火) 17:06:23.96ID:???
やりすぎ防犯パトロール、特定人物を尾行監視 2009年3月19日19時7分配信 ツカサネット新聞
ttp://headlines.yahoo.co.jp/hl?a=20090319-00000026-tsuka-soci

この記事で問題になった通称やりすぎ防パトは、創価学会と警察署が引き起こしていたようです

掻い摘んで説明すると

・創価学会は、町内会や老人会、PTA、商店会等の住民組織に関し、学会員が役員になるよう積極的に働きかける運動を
 90年代末から開始し、結果、多くの住民組織で役員が学会員という状況が生まれた

・防犯パトロールの担い手は地域の住民と住民組織で、防犯活動に関する会議や協議会には、住民組織の代表に役員が出席する為
 防犯活動や防パトに、創価学会が間接的に影響力を行使可能となった

・防パトは住民が行う為、住民が不審者や要注意人物にでっち上げられるトラブルが起きていたが
 創価学会はその緩さに目をつけ、住民組織を握っている状況を利用し、嫌がらせ対象者を不審者や要注意人物にでっち上げ
 防パトに尾行や監視、付き纏いをさせるようになった

・防パトは地元警察署との緊密な連携により行われる為、創価学会は警察署幹部を懐柔して取り込んでしまい
 不審者にでっち上げた住民への嫌がらせに署幹部を経由して警察署を加担させるようになった

・主に当該警察署勤務と考えられる創価学会員警察官を動かし、恐らく非番の日に、職権自体ないにもかかわらず
 私服警官を偽装させて管轄内を歩いて回らせ、防犯協力をお願いしますと住民に協力を求めて回り
 防犯とは名ばかりの、単なる嫌がらせを住民らに行わせた(防犯協力と称し依頼して回っていた警察官らの正体は恐らく所轄勤務の学会員警察官)
 ※これに加えて防犯要員が同様のお願いをして回る

・こうして防犯パトロールを悪用し、住民を欺いて嫌がらせをさせつつ、創価学会自体も会員らを動員し、組織的な嫌がらせを連動して行った

つまり警察署に勤務する学会員警察官、警察署幹部、創価学会が通称やりすぎ防犯パトロールの黒幕

詳細は下記スレをご覧下さい
やりすぎ防犯パトロールは創価学会と警察署の仕業だった
ttps://rio2016.5ch.net/test/read.cgi/bouhan/1516500769/
NAME IS NULL [] 2018/02/04(日) 16:38:15.37:ygeeHQOY
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

複数ソートを実行したいのだけれども、実行できてる??
NAME IS NULL [] 2018/02/05(月) 07:58:44.26:Q16Lz/UI

意味のないダブルクォーテーションと、意味のないWHERE句の条件と、複数ソートという謎の用語がわからない。
NAME IS NULL [sage] 2018/02/05(月) 08:28:06.73ID:???
ダブルクォーテーションはOracleから持ってきたからなのかも
複数ソートは複数キーのことかも
Whereはよくわからん

って言うか何を言いたいのかよくわからん w
NAME IS NULL [sage] 2018/02/05(月) 16:22:38.74ID:???
メディアオプションを[追加]にしてジョブで毎日バックアップしていますが
これだとどんどんバックアップファイルのサイズが大きくなってしまうので
常に最新の10日分だけ残すというバックアップの方法を教えてください
よろしくお願いします
NAME IS NULL [] 2018/02/05(月) 19:13:11.77:wLbeZJwJ

意味のないレスすんな
答えられんのなら黙ってる事だな
NAME IS NULL [] 2018/02/05(月) 22:52:50.94:Q16Lz/UI

仮定の話をするのはIT技術者ではない。
NAME IS NULL [] 2018/02/05(月) 22:54:32.98:Q16Lz/UI
Where 1 = 1 だけでSQLがまったくわかってないことがわかる。
NAME IS NULL [sage] 2018/02/05(月) 23:14:09.67ID:???
少なくとも文法はわかってるようだが?
NAME IS NULL [sage] 2018/02/06(火) 04:47:07.31ID:???
「WHERE 1 = 1」は↓みたいに書いとくと任意の行をコメントにするだけで条件の入れ替えが簡単に出来るから開発時はたまにやるかもw

WHERE 1 = 1
AND フィールド1 = '○○○'
AND フィールド2 = '△△△'
AND フィールド3 = '□□□'
NAME IS NULL [] 2018/02/06(火) 07:36:44.36:AHs/sZxD

やめろ
NAME IS NULL [sage] 2018/02/06(火) 07:49:13.23ID:???

プログラムでsql作る時普通に使うな
NAME IS NULL [sage] 2018/02/06(火) 11:48:04.77ID:???
うん。0 <> 1 も時々
NAME IS NULL [] 2018/02/06(火) 20:47:44.36:WoDXj185
【有賀さつき(52)小林麻央(34)黒木奈々(32)】 世界教師 マイトLーヤ「早死には原発事故の隠蔽のせい」
ttp://rosie.5ch.net/test/read.cgi/liveplus/1517828233/l50
NAME IS NULL [sage] 2018/02/07(水) 03:21:36.81ID:???

0=0
じゃダメなん?
NAME IS NULL [sage] 2018/02/07(水) 21:05:34.23ID:???

ゼロはオーと打ち間違えやすいので避けたい
テンキーなら間違えないが
ノートパソコンだとゼロとオーは隣あっていて打ち間違えやすい
NAME IS NULL [] 2018/02/07(水) 22:14:15.01:nx8/8ate

見間違えるのはわかるけど打ち間違えってw
それおまえだけだからwwww
NAME IS NULL [sage] 2018/02/07(水) 22:38:55.94ID:???
配列がランダムに変わるキーボードか?
NAME IS NULL [sage] 2018/02/08(木) 06:50:41.49ID:???
そもそも[O] なんて名前つけないし
NAME IS NULL [sage] 2018/02/08(木) 07:38:34.47ID:???
where 1=1はsql文の慣例句みたいなものでgoogleで検索してもいっぱいでてくる。そんな事で悩む必要はない。
ttp://kinocolog.com/where11/
NAME IS NULL [sage] 2018/02/08(木) 11:53:55.72ID:???
100文字以内のデータしか入れない場合には
nvarchar(100)
で良いですよね?
質問1
全角文字で半角文字でも100文字入るんですよね?
質問2
nvarchar(max)
にすると無駄にメモリやハードディスクを使いますか?
NAME IS NULL [sage] 2018/02/08(木) 13:35:25.45ID:???
回答1
Yes
回答2
No
varcharは可変長だから入ってる分だけの消費
NAME IS NULL [sage] 2018/02/08(木) 19:08:59.93ID:???

ありがとうございました。
>varcharは可変長だから入ってる分だけの消費
では、カラムが10文字でも100文字でも
とりあえずnvarchar(max) を使っておけば良いのでしょうか?
どういう場合にnvarchar(100) などを使うのでしょうか?
NAME IS NULL [sage] 2018/02/08(木) 19:18:47.90ID:???
index張らないならMAXでもいい
張るなら900バイト以下でなければならない
NAME IS NULL [sage] 2018/02/08(木) 22:35:21.32ID:???
教えてください。

テーブルA に製品の情報がたくさん登録されています。
この中から、不特定多数の特定の文字列で始まらない名称の製品を検索したいと思います。
条件が固定であれば次のような SQL を書けます。

SELECT *
FROM [テーブルA]
WHERE NOT ( [NAME] LIKE 'A%' OR [NAME] LIKE 'B%' OR [NAME] LIKE 'C%' )

条件(先頭の文字)を動的に変更するとしたら、
上のをストアドにしてパラメータで与えるとか、
条件をテーブルに保存しておくなどがあると思うのですが、SQL の書き方がわかりません。
どうするのが一般的か、教えてください。
NAME IS NULL [] 2018/02/09(金) 03:57:06.88:QeQdDyiD

パラメータなりテーブルなりで可変にして
動的SQLかなあ
ttp://blog.livedoor.jp/akf0/archives/51205355.html
NAME IS NULL [sage] 2018/02/09(金) 14:55:37.85ID:???
テーブル型を引数にして

where not Left([NAME], 1) in (select [Word] from @引数)

みたいな風かな
ASCII しないといかんかもしれん
656 [sage] 2018/02/11(日) 00:41:15.28ID:???
,658
ありがとう。
どっちのやり方も知らなかったです。

とりあえず 658 さんの方法を発展させてやってみようと思います。
657 さんの動的 SQL は便利すぎ。
NAME IS NULL [sage] 2018/02/11(日) 01:14:00.27ID:???
一時テーブルに検索文字列セットして
left joinでlike 演算子で連結してnull のものだけ取ればいいように思える
ttps://teratail.com/questions/65949
NAME IS NULL [] 2018/02/11(日) 04:44:52.94:iUCuMXup

動的SQLはできるだけ使わないように。条件の組み合わせが大量になければ、静的SQLで書く。動的SQLはSQLの組み立て方によっては、可読性、保守性がさがり、さらにコーディングミスをおこし、スペースを入れわすれた等おかしなSQLを簡単に仕込んでしまう。
NAME IS NULL [] 2018/02/11(日) 04:51:00.67:iUCuMXup

それ単にパラメータによって、LIKE用の文字列を作り分けておけばいいだけ。
656 [sage] 2018/02/12(月) 00:49:37.83ID:???

ありがとう。
left join で like って使えるんですね。
その結果が null のモノだけって発想がありませんでした。
こちらをまず試してみます。

,662
ありがとう。
うん、そう思って動的 SQL は最後の手段にしとこうかと。
NAME IS NULL [sage] 2018/02/12(月) 07:54:28.97ID:???
こうしてまたバカのバカによるバカのためのバカノウハウが広まるのであった
NAME IS NULL [sage] 2018/02/12(月) 09:52:09.80ID:???
スマートな解決策書けてりゃ格好いいんだけどなぁ...
だとバカの遠吠えにしかなってない w
NAME IS NULL [] 2018/02/12(月) 11:51:24.82:tzC/U9n1
結局、RDBになるとSQLが魔法になってプログラムの見た目はシンプルでも、RDBMSの処理が複雑になるようなものを作るやつが多すぎる。

RDBの処理が汚なくなり、無意味に負荷がかかるようなプログラミムを書いても、RDBMSの処理がどう処理しているのか考えないから、珍妙なことを推奨する。
NAME IS NULL [sage] 2018/02/12(月) 12:19:14.11ID:???

そのスマートな解決策()が動的SQLなんよ
バカには難しいらしいけんどねw
NAME IS NULL [sage] 2018/02/12(月) 13:30:52.28ID:???
動的SQLでどや顔 w
NAME IS NULL [] 2018/02/12(月) 19:57:26.33:tzC/U9n1
データベース板はレベルが低い。リレーショナルデータベースに詳しくもないのにこうだ、これが正解だと言いはる人間ばかり。
NAME IS NULL [sage] 2018/02/12(月) 22:04:38.94ID:???
せめてどこがどう「無意味に」負荷がかかってるのか書けないのかね
NAME IS NULL [] 2018/02/13(火) 01:01:59.31:mpzcP+RA

検索結果が同じSQLでも、RDBMSではSQLの構文解析(ソフトパース、ハードパース)が行われ、実行プランも作り直しなることもあり、RDBMS側の処理が変化する。

プログラムだと結果は同じなのに、こうすると遅い、速いや、意味のないコードを書くと文句を言うくせにSQLになると、とたんにRDBMSもプログラムだということを忘れているか、理解していない。

SQLは魔法ではない。
NAME IS NULL [sage] 2018/02/13(火) 06:48:41.32ID:???
別にSQLでもこう書くべきとか言う議論は普通にやられてるしお前がそう言うのを見てないだけかと
NAME IS NULL [sage] 2018/02/13(火) 19:29:30.08ID:???

同じ結果の処理を同じ手間で書けるなら、負荷は軽い方がいいに決まってるけど
で、その説明でどこがどう負荷かってるの?
まさかクエリキャッシュ効かないでコンパイル時間がとか言う気?


まあしかし、理想はそのへん意識しないでRDBMSに任せる事なんだろうとは思う
オプティマイザの動作を予想して奇妙なSQL書くのは本末転倒だし
NAME IS NULL [] 2018/02/13(火) 20:13:55.26:0W+Ckc+y
久しぶりにアツいマウント合戦開幕したなw
どっちも負けろwwww
NAME IS NULL [] 2018/02/13(火) 21:30:57.57:0W+Ckc+y
どした?おい?w
ファイッッッ!!!wwwwww
NAME IS NULL [sage] 2018/02/13(火) 21:40:47.70ID:???
SQL SERVER2014Expressが動いているWindowsサーバーのOSをクリーンインストール
する予定なのですが、データベースを丸ごとバックアップしておいて、あとで戻すなどは
可能ですか?ヒントを教えて下さい。DBのサイズは500MB 程度です。
NAME IS NULL [sage] 2018/02/13(火) 22:07:12.29ID:???

データベースのデタッチとアタッチ
NAME IS NULL [sage] 2018/02/13(火) 23:35:26.82ID:???
リンクサーバー設定とかデータベースの設定とかもバックアップする方法ってないものか
ドライブごとバックアップするしかないのかな
NAME IS NULL [sage] 2018/02/14(水) 00:04:57.46ID:???
masterバックアップして戻せば戻ったような
NAME IS NULL [] 2018/02/14(水) 02:50:36.19:kUpzGWTP

根本的にリレーショナルデータベースを分かってないのになぜ知ったかぶりをするのか?

リレーショナルデータベースは重い処理をしてるんだぞ?

リレーショナルデータベースの内部処理が見えないから、自分のしょぼいプログラムと比較にならないことをしていることに気づかない。
NAME IS NULL [] 2018/02/14(水) 02:53:40.84:kUpzGWTP

そもそもあんたの用語がおかしい。データベースを知らないと思う。データベースを使うのが精一杯で、リレーショナルデータベースの構造も知らないと思われる。

クエリキャッシュなんて言葉はデータベースエンジニアは使わない。
NAME IS NULL [] 2018/02/14(水) 03:07:54.32:kUpzGWTP

同じ結果でもいつも速いわけではない。統計情報の取得タイミング、データの傾向の変化で実行プランが最適にならない可能性もあれば、コストが高くても速いこともある。

バッファキャッシュの有無、データファイル読み書きタイミング、速度、OSのキャッシュ、ストレージのキャッシュ、ありとあらゆる条件で性能は決まるのであって、そのなかからどう処理されているかのSQL Serverの情報を元にSQL Serverが言っている処理情報の誤りまで判断して決めることだ。
NAME IS NULL [sage] 2018/02/14(水) 07:51:44.92ID:???
定期的にわくよね。当たり前の一般論をすごいことのように語るID付いてるおっさん。
NAME IS NULL [sage] 2018/02/14(水) 07:55:04.82ID:???

すごいね。疲れない?
NAME IS NULL [] 2018/02/14(水) 10:24:40.03:4BYcg5RC

ありがとうございました。やってみます。
NAME IS NULL [] 2018/02/14(水) 17:50:15.79:gGA+OaqX
【2.14】   環 境 破 壊 の 日   ≪バレンタインデーは必要?≫  チョコを配るって何  【CO2】
ttp://rosie.5ch.net/test/read.cgi/liveplus/1518571383/l50
NAME IS NULL [sage] 2018/02/14(水) 18:45:38.91ID:???

知らなかった。今度からmaster もバックアップする
NAME IS NULL [sage] 2018/02/14(水) 20:48:54.39ID:???
masterリストアするのは簡単じゃないから、再生成するスクリプト作って流すほうが楽かもよ
NAME IS NULL [] 2018/02/15(木) 18:22:36.56:YBD93ntd
質問です。
顧客テーブルと売上テーブルがあり、顧客IDで紐付いています。
特定の条件の売上が無い(売上テーブルにレコードが存在しない)顧客のみを抽出するには、どのような方法が考えられるでしょうか?

仮テーブルに顧客テーブルの全レコードをコピーし「特定の条件の売上が有る」顧客を削除していく、という方法は思いつきましたが、SQL文のみで実現する方法はあるでしょうか?

無いものは抽出できない、とは思うのですが…
NAME IS NULL [sage] 2018/02/15(木) 18:56:53.86ID:???

LEFT JOIN

スレチじゃね?
NAME IS NULL [] 2018/02/15(木) 19:10:24.66:L39WhMJw

自ら吐いた言霊に呪われとるやんw

無いのは売上
抽出するのは顧客

な?
NAME IS NULL [sage] 2018/02/15(木) 21:10:45.04ID:???
SELECT * FROM 顧客テーブル
WHERE NOT 顧客ID IN (SELECT 顧客ID FROM 売上テーブル)

みたいな風かな
NAME IS NULL [sage] 2018/02/15(木) 21:23:39.60ID:???

そういうINの使い方は悪手だよ
NOT EXISTSかLEFT JOINを使おう
NAME IS NULL [sage] 2018/02/15(木) 21:23:57.09ID:???

で答え出てるけどないものを抽出するんじゃなくて、「売上に紐付かない顧客」を抽出するってこと
NAME IS NULL [sage] 2018/02/15(木) 21:31:33.97ID:???

そういうJOINの使い方は悪手だよ
NOT EXISTSを使おう
NAME IS NULL [sage] 2018/02/15(木) 21:40:30.01ID:???
exists は確かにわかりやすい記述だけど遅い
大量のデータで使うとサーバーが唸る
できるならinner joinでやったほうがいい
ttp://kkoudev.github.io/blog/2013/09/14/sql/
NAME IS NULL [sage] 2018/02/15(木) 23:18:27.60ID:???

NOT EXISTSをINNER JOINにするのは無理だし
MySQLはNested Loopしか使えないからね
他の一般的RDBとは事情が違うよ
NAME IS NULL [sage] 2018/02/15(木) 23:21:53.94ID:???

NOT EXISTSのほうがパフォーマンスいいことのほうが多いけど
LEFT JOINが悪手ってわけでもないと思うけどな

少なくとも質問者はLEFT JOINを理解してない風なので
そっちからはじめたほうがいい
689 [sage] 2018/02/16(金) 00:03:31.60ID:???
みなさまありがとうございます。
LEFT JOINでできるとは思いませんでした…頭が硬いですね。
教えていただいたNOT EXISTSも調べたところまさにやりたいことでした。
何とかなりそうです。
ありがとうございました。
NAME IS NULL [sage] 2018/02/16(金) 00:31:27.89ID:???

環境、データ、インデックスとかによって違うからお前さんみたいに盲信してるのが一番ヤバイ
NAME IS NULL [] 2018/02/16(金) 01:49:40.19:nepixz1J
経験上LEFT JOIN でIS NULLのほうが速い場合がほとんど
NAME IS NULL [sage] 2018/02/16(金) 02:02:09.86ID:???
パフォーマンス気にするなら計測すればいい
の言うように状況によって結果は変わる
ttps://sqlperformance.com/2012/12/t-sql-queries/left-anti-semi-join
NAME IS NULL [sage] 2018/02/16(金) 05:41:07.18ID:???
さんみたいな書き方を良くするんですが、これは遅いのですか?
NAME IS NULL [sage] 2018/02/16(金) 05:43:00.22ID:???
あっ、ただ自分の場合は

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

ではなく

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

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

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

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

NOT NULLなら意図した結果が得られるけど、速度はDBの最適化に依存
INの最適化レベルが高いDBならNOT EXISTSと同程度の速度に場合もある
でもそうならない場合もあるからこういうケースでは基本使わない
NAME IS NULL [] 2018/02/16(金) 16:42:30.61:G4Vvw6Lg
【アマルガム】水銀を歯に? 厚労省『暴動が怖い』
ttp://mao.5ch.net/test/read.cgi/doctor/1517058870/l50
【ペットフード】告発したら3人組に棍棒で襲われた
ttp://egg.5ch.net/test/read.cgi/hosp/1517110484/l50
【マンモグラフィー】おっぱい挟んで癌検査…必要?
ttp://egg.5ch.net/test/read.cgi/bio/1517115639/l50
NAME IS NULL [] 2018/02/16(金) 20:39:05.84:yNJxj2Lb

環境、データ、インデックスとかによって違うからお前さんみたいに
テストした環境でLEFT JOINが速いからLEFT JOINにしてしまう奴が一番ヤバイ
NAME IS NULL [sage] 2018/02/16(金) 20:59:00.37ID:???

うまい返ししたつもりなんだろうけどアホ晒してるだけやぞww
NAME IS NULL [] 2018/02/16(金) 21:08:47.07:yNJxj2Lb

普通に答えただけだけどうまかったか?w
マジかwセンスあんな俺www
NAME IS NULL [sage] 2018/02/16(金) 21:32:20.04ID:???
誰か試してみてよ
NAME IS NULL [sage] 2018/02/16(金) 21:53:09.91ID:???
単純なnot inならouter joinと同じ実行計画吐いたきがする
NAME IS NULL [] 2018/02/16(金) 22:16:06.50:yNJxj2Lb

だからたまたまその時その環境でそういう実行プランが作られたという経験を
後生大事に今生の知識として胸にしまいこんでも無駄だと言っておろうが

SQLはいつだってよりシンプルにより直接的にやりたい事を表現してる様に書くべきなんや
NAME IS NULL [sage] 2018/02/16(金) 23:37:28.84ID:???

誰もうまい返しとは言ってないぞ
日本語の理解力もないとな w
NAME IS NULL [] 2018/02/17(土) 00:10:23.40:RRaJ3TQN

は?こっちこそお前がうまい返しと言ったとは言っとらんが???
異次元の理解力だなお前…
というかアスペだなwww
NAME IS NULL [sage] 2018/02/17(土) 00:12:55.27ID:???
ここもID強制表示にしてほしいな
NAME IS NULL [sage] 2018/02/17(土) 00:21:22.92ID:???

> というかアスペだなwww
自己紹介乙w
NAME IS NULL [] 2018/02/17(土) 15:34:21.57:lIYg2W3z
5chはROM専みたいな筆不精は、長文が書かれていると、時間をかけて書いていると思い込む。

世の中、超速で読み書きができる人間がいるのだよ。
NAME IS NULL [sage] 2018/02/17(土) 16:12:56.45ID:???
コピペの達人
NAME IS NULL [sage] 2018/02/17(土) 16:15:51.02ID:???

いきなりどうした?
NAME IS NULL [] 2018/02/18(日) 01:31:05.23:JhkmGsBQ

オリジナルです
NAME IS NULL [] 2018/02/18(日) 01:32:48.22:JhkmGsBQ
仕事でやってるなら仕事が異常に速いひとを知ってるはずだけどな。並の人間の20倍、30倍くらい仕事が速い人もいる。
NAME IS NULL [sage] 2018/02/19(月) 05:02:12.33ID:???
1.5人月で見積もられた仕事を1日で片付ける人か。
さすがにそれは見たことないわw
NAME IS NULL [sage] 2018/02/19(月) 12:21:33.79ID:???
めちゃくちゃキーボード打つの速そう
NAME IS NULL [sage] 2018/02/19(月) 19:22:31.89ID:???
30人にやらせれば余裕で1日で終わるというのに
NAME IS NULL [sage] 2018/02/19(月) 19:45:21.08ID:???

そんな思考だから仕事遅いんだよ
できる人できない人の違いすら理解できてない
NAME IS NULL [sage] 2018/02/19(月) 20:26:20.69ID:???
だな
キーボード打つ速度とかマジ関係ない
NAME IS NULL [] 2018/02/19(月) 20:33:52.86:md3NX5hc
仮に1.5人月のコードを5000行とすると
1日でそれ書いて、さらに仕様書とかも書いてテストもするんやで?
めちゃくちゃ打つの速いやん
NAME IS NULL [sage] 2018/02/19(月) 20:40:21.60ID:???
今どき行数で考えるなよ
NAME IS NULL [] 2018/02/19(月) 20:55:39.42:md3NX5hc

何で考えても書く行数は変わらんのだけどw
NAME IS NULL [sage] 2018/02/19(月) 21:14:39.42ID:???
無能な働き者の手による大量の無駄なコードは有能な怠け者の手による洗練された短いコードに劣る
NAME IS NULL [] 2018/02/19(月) 22:24:25.26:md3NX5hc
な?具体的に数字だされると速いやろw
NAME IS NULL [sage] 2018/02/19(月) 23:38:27.02ID:???

724が言ってるような並の人間より仕事が20倍30倍速いやつってのは
並の人間が5000行書かないと実現出来ない処理を200行程度書くだけで実現したりできるわけ
キーボードだってできるだけ打たなくていい方法を考える

見積もり時に書く行数がほぼ固定されてるような仕事してるなら
できるだけそこから早く抜け出すことだな
NAME IS NULL [] 2018/02/20(火) 07:11:59.70:D0Bn3/BK

それコードが圧縮されとるだけやんwコードゴルフかw
コードは20倍圧縮されても作業にかかる時間は速くなっとらんでそれwww
NAME IS NULL [sage] 2018/02/20(火) 07:20:13.02ID:???
典型的な無能の発想だな
NAME IS NULL [] 2018/02/20(火) 08:05:15.51:oDlAdTII
お前らはどうしてスキルないくせに突飛な主張してマウントとりたがるんや?
俺は笑えるからこうして楽しんどるけど一般的にはみっともないだけやでw
NAME IS NULL [sage] 2018/02/20(火) 14:51:54.91ID:???
どれだけ優秀な人間だろうと、1.5人月で見積もった仕事を1日で片付けたらな
そもそもの見積もりがぼったくりすぎるだけだな
NAME IS NULL [sage] 2018/02/20(火) 17:42:37.73ID:???

コードを圧縮て
斜め上の発想だね
NAME IS NULL [sage] 2018/02/20(火) 17:49:18.93ID:???
メタプログラミングやコードジェネレーションを考えればいいと思うよ
できるやつは無駄を省いて機械に仕事をさせる
Paul GrahamのLispの話と同じ
NAME IS NULL [sage] 2018/03/03(土) 09:21:09.95ID:???
新進気鋭の「グラフデータベース」って用途が思いつかないな
NAME IS NULL [sage] 2018/03/03(土) 16:40:26.84ID:???
RDBはグラフと相性悪いからな
用途が思いつかないうちは使う必要ない
NAME IS NULL [sage] 2018/03/03(土) 19:29:07.99ID:???
ビッグデータ()とかバズりたい奴向けやろ
NAME IS NULL [sage] 2018/03/03(土) 21:51:50.18ID:???
一昔前の技術で言えば多次元DBと同じようなもん
RDBみたいにあらゆる所で使われる技術ではない
NAME IS NULL [sage] 2018/03/03(土) 21:52:38.80ID:???
グラフデータベース=ビッグデータ()
とか言ってると恥ずかしいよ
NAME IS NULL [] 2018/03/04(日) 01:22:04.38:elOR/YZE
何年前の話題やねんw
NAME IS NULL [] 2018/03/06(火) 20:30:45.91:Y3UcuCKK
間違えて全データ消してしまったんですが
ldf/mdfファイルから消す直前のデータに戻す方法ってありますか?
NAME IS NULL [sage] 2018/03/06(火) 22:48:19.99ID:???
バックアップあるなら戻せばいいじゃん?
リカバリモデルにもよるけど
NAME IS NULL [] 2018/03/07(水) 00:02:46.51:/Gdd1MyZ
bakファイルがなくてldf/mdfファイルだけの状態です
NAME IS NULL [sage] 2018/03/07(水) 00:20:24.26ID:???
何を消してどういう状態のldf/mdfからデータを戻したいかによるよ
この辺でも読んで対処して
ttps://docs.microsoft.com/ja-jp/sql/relational-databases/backup-restore/restore-a-sql-server-database-to-a-point-in-time-full-recovery-model

よく分からなければチャリーンと
ttps://www.apexsql.com/sql_tools_recover.aspx
NAME IS NULL [] 2018/03/13(火) 12:58:28.97:jwO7/+7T
2017 Expressへ32bit windows7接続出来ますか?
NAME IS NULL [sage] 2018/03/13(火) 17:08:26.50ID:???
できますよ
NAME IS NULL [] 2018/03/14(水) 07:45:47.09:znnrpK8K
ありがとうございました。
WINDOWS認証ですが18456エラーが出ます、あとLOGを見ると明示的に指定されたデータベースを開けませんでした。
とあります、何が悪いのでしょうか?
今までは2005 EXPRESSでした。
NAME IS NULL [sage] 2018/03/14(水) 13:40:26.89ID:???
何時のVerからかは忘れたが、今はマシン名\インスタンス名の形式で指定してやらんと繋がらない
例えばlocalhost\SQLEXPRESS
NAME IS NULL [] 2018/03/14(水) 15:02:13.68:znnrpK8K
そうですか?試してみます、ありがとうございました。
NAME IS NULL [sage] 2018/03/14(水) 19:11:25.05ID:???

そのエラーコード以外に状態コードが出てるでしょ
それ込みでググればだいたい原因分かるよ

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

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

bcrypt.dllでググったらこんなんでましたけど
ttps://answers.microsoft.com/en-us/windows/forum/all/bcryptdll-missing-after-automatic-c-drive-check/0a3fe612-c2ae-429f-9564-83dffb4ca28b
NAME IS NULL [sage] 2018/03/23(金) 21:28:54.62ID:???
ありがとうございます。

bcrypt.dll ファイル自体は system32 と SysWOW64 のどちらのフォルダにも存在しています。
SQL Server 2017 Express は、そもそも Windows7 はサポート外で、ただし localdb だけならいける、と
いうことなのでやってみたけど、やっぱダメなのか・・
SQL Server Management Studio をちょっと勉強したかったのだが。
NAME IS NULL [sage] 2018/03/24(土) 10:11:24.87ID:???

「ただしlocaldbだけなら〜」はどこからの情報なのか
NAME IS NULL [sage] 2018/03/24(土) 14:01:15.39ID:???

これです→ ttp://diy-kagu.hatenablog.com/entry/2017/08/09/155801
記事は2016だけど、2017でも大丈夫だろうと。
自分の環境特有の理由かもしれない。
もう少しやってみてダメなら 2017 をアンインストールして 2016 で再度やってみる。
SQLの勉強でなくて、SQL Server Management Studio を勉強したい。
NAME IS NULL [sage] 2018/03/24(土) 15:27:07.88ID:???
普通に2014じゃだめなのか?
ttps://www.microsoft.com/ja-jp/download/details.aspx?id=42299
NAME IS NULL [sage] 2018/03/26(月) 10:12:43.42ID:???
ありがとうございます。
2017バージョンの localDB と SSMS をアンインストール後、
2014バージョンの localDB と SSMS を入れ、SSMS から接続までできました。
これで SSMS の勉強ができます。
NAME IS NULL [sage] 2018/03/27(火) 21:04:57.51ID:???
SQL Server 2016 expressで特定のテーブルのアクセスが異常に遅いのですが、何か原因はありますか?

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

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

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

Windows認証だったら判別つくのですが、プログラムはSQL認証で使いたいです。
(ユーザーがもし SSMS で繋ぎにきたときにテーブル全開示になっちゃうのを防ぐため)
NAME IS NULL [sage] 2018/04/17(火) 19:10:39.61ID:???
できません
NAME IS NULL [sage] 2018/04/19(木) 12:38:19.26ID:???

俺、そのケースで散々パフォーマンスチューニングだのインデックス再構築だの設計変更だのしてたが、
最終的なオチはExpressのデータファイルの10GB制限に引っかかっててインデックス検索で1MB単位で容量の削除、自動拡張を繰り返してた、
というケースがあった。
今でも当時のことを思い出すと赤面するぐらい恥ずかしい思い出。
NAME IS NULL [sage] 2018/04/19(木) 23:59:08.45ID:???
自動拡張はともかく、容量の削除ってなんだ?
NAME IS NULL [sage] 2018/04/20(金) 00:29:36.06ID:???

インサートで限界を突破して自動拡張が停止
→ロールバックされて容量が元に戻る
→ギリギリ容量が残ってるので自動拡張が…
以下、タイムアウトするまで(あるいは何とか入りきるまで)延々繰り返し

みたいな(ちょっと詳細省いたけど
NAME IS NULL [sage] 2018/04/21(土) 11:37:33.55ID:???
自動拡張されたデータファイルのサイズはロールバックしても自動的に縮小されたりしなかったと思うんがだが
自動拡張に出来なくて空きがないならエラーで帰ってくるから、タイムアウトまで延々待たされるなんて事も無かったと思うけど
NAME IS NULL [] 2018/04/26(木) 11:10:07.49:aPEXgwUk
これしよ
ttps://goo.gl/SdbNg6
NAME IS NULL [sage] 2018/05/03(木) 17:13:22.69ID:???
SQL Server の参考書でいいやつってどれ?
SQL の文法解説じゃなくて、SQL Server 独特の文化とか、SSMS の操作法とか、そのあたりを学びたい。
NAME IS NULL [] 2018/05/03(木) 18:24:13.53:aGiZKSfN

公式DLの自習書シリーズが最強だと思う
ボリュームが多いが参考書臭さがなく実務より
NAME IS NULL [] 2018/05/03(木) 18:25:55.90:aGiZKSfN

公式DLの自習書シリーズが最強だと思う
ボリュームが多いが参考書臭さがなく実務より
NAME IS NULL [] 2018/05/03(木) 19:44:18.01:03ggByZ2

あまりない。そこがSQL Serverの厳しいところ。
NAME IS NULL [sage] 2018/05/03(木) 22:41:41.95ID:???
おお! 無料でこんなのあるんだ、ありがとう!
オラクルよりもマイナーなのかな?
NAME IS NULL [] 2018/05/03(木) 23:43:56.18:brE82I5/

自習書は日本マイクロソフトが日本の会社に作らせたもの。

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

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

Management StudioについてはどのRDBMSより経験がなくても直感的にわかりやすい。
NAME IS NULL [] 2018/05/04(金) 01:38:57.38:l3Y7dHLE

SQL Server 2005、2008以降は大きく変わっていないから、特に翔泳社の本は役に立つよ。

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

秀和システムの赤い本もひどい。
NAME IS NULL [sage] 2018/05/04(金) 08:19:21.05ID:???

なんで翻訳物に手を出すの?
NAME IS NULL [] 2018/05/04(金) 09:42:04.84:l3Y7dHLE

NAME IS NULL [sage] 2018/05/04(金) 10:54:05.67ID:???

>マイクロソフトはどの製品も作りっぱなしでマニュアルは自動翻訳のよくわからないものばかり。
NAME IS NULL [] 2018/05/04(金) 13:58:18.36:l3Y7dHLE

マイクロソフトのサイトを見たことがないの?
NAME IS NULL [sage] 2018/05/04(金) 14:04:11.53ID:???

ごめんね自動翻訳なんて見ないんだ
NAME IS NULL [sage] 2018/05/04(金) 14:04:44.52ID:???

英語読めないのかい?
NAME IS NULL [sage] 2018/05/04(金) 15:59:47.61ID:???
M$日本の公式ドキュメントは「これは自動翻訳で生成されました」だらけなんだが
はggrもしないらしい
NAME IS NULL [sage] 2018/05/04(金) 16:06:01.60ID:???

英語のドキュメント読むに決まってんだろ何言ってんの?
NAME IS NULL [sage] 2018/05/04(金) 16:12:20.05ID:???

ググった結果英語のドキュメントが出てこない世界に住んでるんだねすごいね
NAME IS NULL [sage] 2018/05/04(金) 20:10:03.98ID:???
789の世界のgoogleは日本語の結果のみ表示ができないらしい
NAME IS NULL [] 2018/05/04(金) 22:23:50.48:l3Y7dHLE
その英語もひどいから意味がない。
NAME IS NULL [sage] 2018/05/05(土) 11:00:57.91ID:???

どうひどいの?
NAME IS NULL [] 2018/05/05(土) 17:00:07.44:T1SL703t

ユーザーにわからせようとはしてない。外国人は基本的に不親切だから、この説明でわからない方が悪いというスタンス。
NAME IS NULL [] 2018/05/09(水) 13:40:31.08:f5JaP2Hu
ttps://onnasyakai.com/uwasazuki-na-hito/
NAME IS NULL [] 2018/05/10(木) 20:41:14.88:7P381X6c
自動拡張されたデータを削除してもファイルサイズが大きいままなのですがどうすればサイズを小さくできますか?
NAME IS NULL [sage] 2018/05/10(木) 20:48:55.39ID:???
まずバックアップします
NAME IS NULL [sage] 2018/05/12(土) 00:31:47.87ID:???
DBCC SHRINKFILE
NAME IS NULL [] 2018/05/12(土) 00:44:55.12:hux6qi0J
ですがみなさん方法をご存知ないですか?
それとも削除した後からでは小さく出来ませんか?
NAME IS NULL [sage] 2018/05/12(土) 07:22:09.07ID:???
共同ツール 1
ttps://seleck.cc/685

ttps://trello.com/
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
ttp://www.kikakulabo.com/service-eft/
trelloのオープンソースあり

共同ツール 2
ttps://www.google.com/intl/ja_jp/sheets/about/

共同ツール 3
ttps://slack.com/intl/ja-jp
ttps://www.dropbox.com/ja/
ttps://bitbucket.org/
ttps://ja.atlassian.com/software/sourcetree
ttps://sketchapp.com/extensions/plugins/
ttp://photoshopvip.net/103903

ttps://goodpatch.com/blog/sketch-plugins/
NAME IS NULL [] 2018/05/13(日) 00:56:54.94:S1zmRzPe
最新のManagement studioが64bit OSしか
サポートしてないんだが、いったいマイクロソフトはどういうつもりなんだろう?
Linuxのサポートよりよっぽど大事だろう?
NAME IS NULL [] 2018/05/13(日) 01:55:14.27:NO/7QD/0

それSQL Server本体とセットではないManagement Studioではないのか?
NAME IS NULL [sage] 2018/05/13(日) 02:43:17.16ID:???

それで何か困るの?
NAME IS NULL [sage] 2018/05/13(日) 08:22:29.07ID:???

> サポートしてないんだが、いったいマイクロソフトはどういうつもりなんだろう?
32bit OS でグダグダ言うクレーマーの相手はしませんと言う意思表示だろ
NAME IS NULL [] 2018/05/13(日) 10:17:13.68:aUXovNI8
今32bitOSって動いてる?
NAME IS NULL [sage] 2018/05/13(日) 10:31:18.97ID:???

会社で動いてるよ(Windows 7)
もうすぐ廃棄するけど
NAME IS NULL [] 2018/05/13(日) 13:04:14.54:aUXovNI8

win7にSQLを入れてDBサーバーとして使ってる訳じゃないでしょ?
NAME IS NULL [sage] 2018/05/13(日) 13:20:15.30ID:???

Visual Studio 入れてるから LocalDB 入ってるけど?
まあテスト用だけどね
NAME IS NULL [sage] 2018/05/25(金) 22:14:21.62ID:???
非力なマシンだと、SSMSが重くてつらい
NAME IS NULL [sage] 2018/05/25(金) 22:29:57.73ID:???

32bit切り捨てたしね
NAME IS NULL [sage] 2018/05/25(金) 23:21:04.44ID:???
立ち上がりきったらそう遅くねーけどな
立ち上げがVisualStudioより遅せーのはアホかと思うが
NAME IS NULL [] 2018/05/25(金) 23:24:30.32:TatbyLnb
たぶん若いやつだと思うが、起動に時間がかかるなら、それを考慮して起動中はべつのことをしてろよw
NAME IS NULL [] 2018/05/25(金) 23:53:50.76:Z93MyXqj
ほなシコっとってもええんか?シコるで?
NAME IS NULL [] 2018/05/26(土) 00:43:38.25:bRsNkwI2

起動もだが、実行中のプランを見るヤツとか、
重すぎてまともに動かない。
ロック状況見るヤツも無くなっちゃったし、
糞化がハンパない。
NAME IS NULL [sage] 2018/05/27(日) 14:40:12.20ID:???
個人でexpress以外使ってる人いる?
NAME IS NULL [] 2018/05/27(日) 15:48:44.54:Lqhm87aC

個人ってどーいう事?
そんな奴おらんだろ?
NAME IS NULL [] 2018/05/27(日) 16:07:16.20:8hLmukSL

まれにいるだろ。
NAME IS NULL [sage] 2018/05/27(日) 17:32:39.64ID:???

Developer Editionならいるんじゃね
NAME IS NULL [sage] 2018/05/27(日) 17:42:19.92ID:???
Win10Proで2017Developer使ってるよ
NAME IS NULL [sage] 2018/05/27(日) 17:57:50.42ID:???
ExpressやDeveloperとかの無償版がなきゃ泣く泣くStandard買う奴もいるんだろうけど個人ユースならExpressで充分って言う人がほとんどだろうしなぁ
NAME IS NULL [sage] 2018/05/29(火) 09:13:12.99ID:???
中小でも社内で完結させられるならExpressで十分だしな。同時接続の人数によるが。
サイズオーバーしてもDB分ければいいし。
NAME IS NULL [] 2018/05/29(火) 12:18:56.63:7/O8R114
企業でexpressはほぼほぼライセンス違反とちゃうんか?
知らんけど
NAME IS NULL [sage] 2018/05/29(火) 13:25:46.38ID:???
expressは商用おkやぞ
ダメなのはDeveloper
NAME IS NULL [sage] 2018/05/29(火) 16:56:50.03ID:???
クライアントOSでやるとそっちのライセンスに引っかかるけどな
NAME IS NULL [sage] 2018/05/29(火) 21:13:04.30ID:???
,
アホすぎ、100年ROMっとけ
NAME IS NULL [] 2018/05/29(火) 21:20:02.44:Ay/YE4Sk

おまえのせいでアホにアホって言われてもうたわ
どう責任とってくれんねん
NAME IS NULL [sage] 2018/06/07(木) 09:07:37.80ID:???
ttps://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt?view=sql-server-2017
NAME IS NULL [sage] 2018/06/16(土) 13:18:37.96ID:???
bcp って評価はどうなの?
NAME IS NULL [] 2018/06/16(土) 18:31:45.50:UP0xR2sD

未だにダブルクォートとかの囲み文字付きファイルや改行入りが処理できない駄目ツール
(SSISではできるのに)
パフォーマンスはそこそこ。
あなたの評価は?
NAME IS NULL [sage] 2018/06/16(土) 23:26:28.39ID:???
SQL Server PowerShellってどうなの?
NAME IS NULL [] 2018/06/17(日) 00:38:22.75:DF4YrmFv

SSISも勝手にやられてしまう仕様が多くて使いづらいけどな。
NAME IS NULL [sage] 2018/06/21(木) 09:34:01.43ID:???
セッションの確認の事で教えてください。

物理的に別々の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;
NAME IS NULL [sage] 2018/06/21(木) 13:35:19.88ID:???
普通に考えて、そのログインの権限が違うんだろ
NAME IS NULL [sage] 2018/06/21(木) 14:04:47.96ID:???

ありがとうございました。見えました。
アホな質問ですみませんでした。
NAME IS NULL [sage] 2018/06/23(土) 15:02:34.02ID:???
一般的に接続の作成、開放はコストが高いと言うけど、この場合のコストって何?
クライアントから見た時間は当然として、サーバー側はどんなコストがかかるの?やっぱりその間の処理が重くなるとかあるのかな?
NAME IS NULL [] 2018/06/23(土) 15:16:13.35:tpSzsfc7

NAME IS NULL [sage] 2018/06/23(土) 17:02:33.78ID:???
コスト=負荷と思っとけ
接続口を作るのはOSとやり取りするからけっこう大変な処理
NAME IS NULL [sage] 2018/06/23(土) 21:08:58.69ID:???

サーバはリソース(CPUとメモリ)
クライアントは時間
NAME IS NULL [sage] 2018/06/23(土) 21:40:32.04ID:???

例えば常時だいたい100くらいセッションがプールされてるとして、新たに100のクライアントが増える場合、サーバーにとって100プールが増えるのと増加100分は毎回接続、開放してもらうのと、どっちがいいかな?
NAME IS NULL [sage] 2018/06/23(土) 22:29:07.38ID:???
そもそもサーバは接続プールとかしてるのかね
プールしてるならなおさら、クライアントは毎回解放してもらわんとプールが有効に使えないわけだが
NAME IS NULL [sage] 2018/06/23(土) 22:30:11.62ID:???
そもそもサーバは接続プールとかしてるのかね
プールしてるならなおさら、クライアントは毎回解放してもらわんとプールが有効に使えないわけだが
NAME IS NULL [sage] 2018/06/23(土) 22:46:40.47ID:???

プールはクライアント側の実装だからサーバにとっては単に長時間の接続でしかない
サーバが許容する上限を超えるまではプールしたほうが良いことが多いが、
限界をこえるようなら毎回接続開放するしかない
クライアントの数が多いとか、接続毎のクエリ発行頻度が低い場合は
プールせずにこまめに切断したほうが良いこともある
NAME IS NULL [sage] 2018/06/24(日) 10:15:42.74ID:???
SSMS の軽量版、簡易版を出してほしい。
DB管理者向け機能を省略し、一般ユーザ向けのバージョン。
NAME IS NULL [sage] 2018/06/24(日) 10:24:36.26ID:???
SSMS に一般ユーザーが使う機能なんてあるか?
NAME IS NULL [sage] 2018/06/24(日) 13:04:29.63ID:???
え?SSMSって一般ユーザがSQL投げて問合せするツールじゃないの?
NAME IS NULL [sage] 2018/06/24(日) 13:31:19.84ID:???
テーブル間にリレーション定義してあって着目セルがリンク対象だったとき
右クリとかでリンク先の該当テーブル表示、みたいなところまでやってもらいたいところだ
NAME IS NULL [sage] 2018/06/24(日) 13:51:04.78ID:???
リレーションシップなんて飾りです 偉い人にはそれがわからんのですよ
NAME IS NULL [sage] 2018/06/24(日) 13:54:29.71ID:???
SQL投げてる時点で一般ユーザーじゃねーだろ
NAME IS NULL [sage] 2018/06/24(日) 14:01:00.27ID:???

一般ユーザとは?
NAME IS NULL [sage] 2018/06/24(日) 17:14:17.60ID:???
SQL分からんようなやつに直接触らせるDBはねーよ
NAME IS NULL [sage] 2018/06/24(日) 17:16:02.63ID:???
おまえに食わせるSQLはねぇ!
NAME IS NULL [sage] 2018/06/24(日) 19:11:03.77ID:???
ssmsの悪い所は
オブジェクトエクスプローラがテーブルやプロシージャ含めて全てツリー表示している所だな
増えてくるとスクロールが大変。
それからテーブルやビューを見るとき次々タブが増えてどれ修正していたのかわからなくなる

SIオブジェクトプラザという有料のツールだとそこら変うまく出来てる
データベースをまたぐ依存関係もわかる
だけど高いのと時々固まるのでおすすめできない
NAME IS NULL [sage] 2018/06/24(日) 19:40:37.73ID:???

>次々タブが増えて

JaneStyleみたいにタブが横方向に表示しきれなくなるたびに縦方向に1段増やすようにして欲しいね
NAME IS NULL [sage] 2018/06/24(日) 23:23:46.74ID:???
昔はエンドユーザーがSQLを投げていた。あな恐ろしや
NAME IS NULL [sage] 2018/06/30(土) 10:49:48.52ID:???
bcp はデータのインポート、エクスポートが主目的。
sqlcmd は SSMS の簡易なCUI版アプリケーション。オラクルでいうところの sqlplus。

っていう位置づけでよろしいか。
NAME IS NULL [] 2018/07/01(日) 13:16:46.05:iOtlwpag

bcpはOracle Databaseで言えばSQL*Loaderにあたるもの。
NAME IS NULL [sage] 2018/07/04(水) 22:27:52.09ID:???
最近は、mssql-cli というのもあるね
NAME IS NULL [sage] 2018/07/08(日) 22:24:33.92ID:???

どっちも不便だからsqlps使うといいよ
NAME IS NULL [sage] 2018/07/11(水) 01:23:22.13ID:???

select権限だけなんだから好きにしろって話だろw
NAME IS NULL [] 2018/07/12(木) 12:54:12.43:/YTA8M6s
【上流きどり、都民″】 マ7トLーヤ『大洪水は都会人の弱者切捨ての結果、大地震は核爆発の結果』
ttp://rosie.5ch.net/test/read.cgi/liveplus/1531363082/l50


豪雨のどさくさにカジノ法案強行、火事場泥棒!
NAME IS NULL [] 2018/07/12(木) 21:34:55.74:RO0MxO/p
一日に数件のレコード(数百文字くらい)が新規に追加されるDBなのだが、
追加されたタイミングで自分宛てに通知メールを送ったり出来ますか?
メール本文には追加されたテキストデータが有れば尚良し。
NAME IS NULL [sage] 2018/07/13(金) 19:38:57.79ID:???
前のSQL Mail 今はデータベースメールって言うらしい でメール送信はできる

トリガー仕込んでやればできるんじゃね
NAME IS NULL [] 2018/07/14(土) 00:07:50.29:aYAJ4wRd

ありがとござんした。
NAME IS NULL [sage] 2018/07/20(金) 18:14:47.36ID:???
プロシージャでSELECTの結果を返してるんですが、INFORMATION_SCHEMAなどで、何個のSELECT結果を返してるかを、調べる方法はありませんか?
やっぱり、実行しないと厳しいですかね
NAME IS NULL [sage] 2018/07/21(土) 13:29:57.03ID:???
何個のSELECT結果ってどういうことだ
NAME IS NULL [sage] 2018/07/21(土) 14:37:14.53ID:???
プロシージャ内で
select * from table1
select * from table2
と書くと2つのSELECT結果が返ってくると思うんですが、いくつのSELECT結果が返ってくるかが知りたいです。
この場合、2つです。
ちなみに、.netを使ってます
NAME IS NULL [sage] 2018/07/21(土) 16:44:00.45ID:???
はっきりいって、それを知る意味がわからん。
NAME IS NULL [sage] 2018/07/21(土) 17:10:38.16ID:???
プロシジャってのが何を指してるかわからんが
そのSQLが静的なら、そのSQL見ればわかるし
動的に生成してるなら、動的に生成するロジックでわかるとおもうが
NAME IS NULL [sage] 2018/07/21(土) 17:17:54.97ID:???
複数 レコードセット
でググれ
NAME IS NULL [sage] 2018/07/21(土) 17:26:51.48ID:???
「俺が必要な機能が用意されてないのはおかしい」って思ってる奴が定期的に湧いてくる不思議
NAME IS NULL [] 2018/07/21(土) 18:39:30.83:OaX/dGdR

やってみればとりあえず分かるだろうに。
NAME IS NULL [sage] 2018/07/21(土) 19:12:18.09ID:???
Oracleだと、パラメータのRefcursorの数でわかるんですが、SqlServerでは分からないんですね
NAME IS NULL [sage] 2018/07/21(土) 19:35:43.12ID:???

パラメタで返すならパラメタ見れば同じようにわかるけど?

結果セットで複数返したときならクライアント側ライブラリの話だが
ADO.NETのスレってなかったっけ?
ざっと見た感じではNextResultで自分で数えないとダメっぽいなぁ
NAME IS NULL [sage] 2018/07/21(土) 20:42:46.11ID:???

SqlServerにはCursorの引数ないから、実際に実行するしかなさそうですね
ありがとうございました。
NAME IS NULL [sage] 2018/07/22(日) 00:56:34.48ID:???
いやSQL Sevrerでもカーソル引数にできたはずだが、と思って調べたが
できるけど、T-SQLからしか呼べないのか

つか引数で指定するってことは、ストアド作成時に数は決まってるわけだが
NAME IS NULL [sage] 2018/07/22(日) 01:03:32.64ID:???
いやSQL Sevrerでもカーソル引数にできたはずだが、と思って調べたが
できるけど、T-SQLからしか呼べないのか

つか引数で指定するってことは、ストアド作成時に数は決まってるわけだが

勢い5万以上のスレをメールでお知らせするサービス、実施中!!
憧れボディをGETしたい!その夢、ボニックで!

新着レスの表示

2ch勢いランキング アーカイブ データベース板ランキング

凡例:

レス番

100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている

名前

名無しさん (青) → sage のレス
名無しさん (緑) → age のレス

ID

ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID

このページは2ch勢いランキングが作成したアーカイブです。削除についてはこちら