Microsoft SQL Server 総合スレ 11 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
Microsoft SQL Server (Transact-SQL) の総合スレッドです。
・Microsoft 公式サイト
http://www.microsoft.com/japan/sql/
過去スレとかめんどいから誰か適当に貼って >>792
ユーザーにわからせようとはしてない。外国人は基本的に不親切だから、この説明でわからない方が悪いというスタンス。 自動拡張されたデータを削除してもファイルサイズが大きいままなのですがどうすればサイズを小さくできますか? >>795ですがみなさん方法をご存知ないですか?
それとも削除した後からでは小さく出来ませんか? 最新のManagement studioが64bit OSしか
サポートしてないんだが、いったいマイクロソフトはどういうつもりなんだろう?
Linuxのサポートよりよっぽど大事だろう? >>800
それSQL Server本体とセットではないManagement Studioではないのか? >>800
> サポートしてないんだが、いったいマイクロソフトはどういうつもりなんだろう?
32bit OS でグダグダ言うクレーマーの相手はしませんと言う意思表示だろ >>804
会社で動いてるよ(Windows 7)
もうすぐ廃棄するけど >>805
win7にSQLを入れてDBサーバーとして使ってる訳じゃないでしょ? >>806
Visual Studio 入れてるから LocalDB 入ってるけど?
まあテスト用だけどね 立ち上がりきったらそう遅くねーけどな
立ち上げがVisualStudioより遅せーのはアホかと思うが たぶん若いやつだと思うが、起動に時間がかかるなら、それを考慮して起動中はべつのことをしてろよw >>808
起動もだが、実行中のプランを見るヤツとか、
重すぎてまともに動かない。
ロック状況見るヤツも無くなっちゃったし、
糞化がハンパない。 >>814
個人ってどーいう事?
そんな奴おらんだろ? >>814
Developer Editionならいるんじゃね Win10Proで2017Developer使ってるよ ExpressやDeveloperとかの無償版がなきゃ泣く泣くStandard買う奴もいるんだろうけど個人ユースならExpressで充分って言う人がほとんどだろうしなぁ 中小でも社内で完結させられるならExpressで十分だしな。同時接続の人数によるが。
サイズオーバーしてもDB分ければいいし。 企業でexpressはほぼほぼライセンス違反とちゃうんか?
知らんけど expressは商用おkやぞ
ダメなのはDeveloper クライアントOSでやるとそっちのライセンスに引っかかるけどな >>821, >>823
アホすぎ、100年ROMっとけ >>823
おまえのせいでアホにアホって言われてもうたわ
どう責任とってくれんねん >>827
未だにダブルクォートとかの囲み文字付きファイルや改行入りが処理できない駄目ツール
(SSISではできるのに)
パフォーマンスはそこそこ。
あなたの評価は? SQL Server PowerShellってどうなの? >>828
SSISも勝手にやられてしまう仕様が多くて使いづらいけどな。 セッションの確認の事で教えてください。
物理的に別々の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; >>832
ありがとうございました。見えました。
アホな質問ですみませんでした。 一般的に接続の作成、開放はコストが高いと言うけど、この場合のコストって何?
クライアントから見た時間は当然として、サーバー側はどんなコストがかかるの?やっぱりその間の処理が重くなるとかあるのかな? コスト=負荷と思っとけ
接続口を作るのはOSとやり取りするからけっこう大変な処理 >>834
サーバはリソース(CPUとメモリ)
クライアントは時間 >>836 >>837
例えば常時だいたい100くらいセッションがプールされてるとして、新たに100のクライアントが増える場合、サーバーにとって100プールが増えるのと増加100分は毎回接続、開放してもらうのと、どっちがいいかな? そもそもサーバは接続プールとかしてるのかね
プールしてるならなおさら、クライアントは毎回解放してもらわんとプールが有効に使えないわけだが そもそもサーバは接続プールとかしてるのかね
プールしてるならなおさら、クライアントは毎回解放してもらわんとプールが有効に使えないわけだが >>838
プールはクライアント側の実装だからサーバにとっては単に長時間の接続でしかない
サーバが許容する上限を超えるまではプールしたほうが良いことが多いが、
限界をこえるようなら毎回接続開放するしかない
クライアントの数が多いとか、接続毎のクエリ発行頻度が低い場合は
プールせずにこまめに切断したほうが良いこともある SSMS の軽量版、簡易版を出してほしい。
DB管理者向け機能を省略し、一般ユーザ向けのバージョン。 え?SSMSって一般ユーザがSQL投げて問合せするツールじゃないの? テーブル間にリレーション定義してあって着目セルがリンク対象だったとき
右クリとかでリンク先の該当テーブル表示、みたいなところまでやってもらいたいところだ リレーションシップなんて飾りです 偉い人にはそれがわからんのですよ SQL分からんようなやつに直接触らせるDBはねーよ ssmsの悪い所は
オブジェクトエクスプローラがテーブルやプロシージャ含めて全てツリー表示している所だな
増えてくるとスクロールが大変。
それからテーブルやビューを見るとき次々タブが増えてどれ修正していたのかわからなくなる
SIオブジェクトプラザという有料のツールだとそこら変うまく出来てる
データベースをまたぐ依存関係もわかる
だけど高いのと時々固まるのでおすすめできない >>851
>次々タブが増えて
JaneStyleみたいにタブが横方向に表示しきれなくなるたびに縦方向に1段増やすようにして欲しいね 昔はエンドユーザーがSQLを投げていた。あな恐ろしや bcp はデータのインポート、エクスポートが主目的。
sqlcmd は SSMS の簡易なCUI版アプリケーション。オラクルでいうところの sqlplus。
っていう位置づけでよろしいか。 >>854
bcpはOracle Databaseで言えばSQL*Loaderにあたるもの。 >>854
どっちも不便だからsqlps使うといいよ >>853
select権限だけなんだから好きにしろって話だろw 【上流きどり、都民″】 マ7トLーヤ『大洪水は都会人の弱者切捨ての結果、大地震は核爆発の結果』
http://rosie.5ch.net/test/read.cgi/liveplus/1531363082/l50
豪雨のどさくさにカジノ法案強行、火事場泥棒! 一日に数件のレコード(数百文字くらい)が新規に追加されるDBなのだが、
追加されたタイミングで自分宛てに通知メールを送ったり出来ますか?
メール本文には追加されたテキストデータが有れば尚良し。 前のSQL Mail 今はデータベースメールって言うらしい でメール送信はできる
トリガー仕込んでやればできるんじゃね プロシージャでSELECTの結果を返してるんですが、INFORMATION_SCHEMAなどで、何個のSELECT結果を返してるかを、調べる方法はありませんか?
やっぱり、実行しないと厳しいですかね プロシージャ内で
select * from table1
select * from table2
と書くと2つのSELECT結果が返ってくると思うんですが、いくつのSELECT結果が返ってくるかが知りたいです。
この場合、2つです。
ちなみに、.netを使ってます プロシジャってのが何を指してるかわからんが
そのSQLが静的なら、そのSQL見ればわかるし
動的に生成してるなら、動的に生成するロジックでわかるとおもうが 「俺が必要な機能が用意されてないのはおかしい」って思ってる奴が定期的に湧いてくる不思議 >>865
やってみればとりあえず分かるだろうに。 Oracleだと、パラメータのRefcursorの数でわかるんですが、SqlServerでは分からないんですね >>871
パラメタで返すならパラメタ見れば同じようにわかるけど?
結果セットで複数返したときならクライアント側ライブラリの話だが
ADO.NETのスレってなかったっけ?
ざっと見た感じではNextResultで自分で数えないとダメっぽいなぁ >>872
SqlServerにはCursorの引数ないから、実際に実行するしかなさそうですね
ありがとうございました。 いやSQL Sevrerでもカーソル引数にできたはずだが、と思って調べたが
できるけど、T-SQLからしか呼べないのか
つか引数で指定するってことは、ストアド作成時に数は決まってるわけだが いやSQL Sevrerでもカーソル引数にできたはずだが、と思って調べたが
できるけど、T-SQLからしか呼べないのか
つか引数で指定するってことは、ストアド作成時に数は決まってるわけだが OS:Windows server 2008R2
DB:SQL server 2008R2
で動くアプリケーションソフトがあります。
これを、以下の環境にDBを移行しました。
OS:Windows server 2012R2
DB:SQL server 2016
CPU、メモリ数、HDDなどハードウェアの条件は全く同一なのに、
アプリケーションからのデータの閲覧、検索、修正、上書き
などの動きが見違えるほど速くなりました。
SQL server のバージョンが新しくなった効果でしょうか? HDD同じって、同じ規格で同じスピードのまったく同一の型番のディスクだよな
逆に今のスピードが本来の性能で、古いほうが遅くなってたと考える方が妥当じゃね >>877
ハードディスクは全く同じ型番です
現行システムが動いているサーバと全く同じ機種(スペック)のサーバが
存在していて、今回移行テストに使用しています
ハードウェアの条件が同じで、動きがこんなにも違うので、SQL serverが
劇的に改善されているのかなと思いまして 移行元と先のデータ件数は同じなの?
件数が同等であれば、
物理ファイルの断片化の解消
インデックスおよび統計の更新
等が考えられる。 どうせインデックスがぐちゃぐちゃになっていたという落ちだろ
インデックスの再構成とかしていたのかだな >>880
データ件数は全く同じです
SQL server 2008R2のデータベース完全バックアップを取って、
SQL server 2016に復元し、アプリケーションの接続先データベースを
2016にしただけで動きが速くなりました
>>881
インデックスの再構成、再構築はメンテナンスプランで毎日実行して
いましたが、統計の更新は毎日行う必要ないと開発部から聞いていたので
月1回程度行ってました 2008と2016だと、エディション同じならそう大きな速度差は出ない気がするけどなぁ
そもそものデータファイルがフラグメントしてたとかじゃないのか
ま、早くなったんならよかったんじゃね >>882
2008R2のデータベース完全バックアップを、
2008R2にそのまま復元すれば早くなる可能性大だな クエリプランが変わったから速くなったと仮定すると、基数推定のバージョンが変わったことによる可能性もある
検証する余裕があるなら2016のほうにトレースフラグ9481セットして再起動して、旧バージョンで動かしてみるのもありかと 2008R2ではメモリー制限設定してたのに2016ではディフォルトで使ってるとか
まあ2008R2で調査する気ないんなら
ラッキー、持ってる俺は違うな
とでも思ってりゃいい あるいはmaxdop指定してるとかね
テスト用だとその辺デフォルトでやっちゃいかねないからな
で、いざ本番用にとちゃんと設定したらテストの時のパフォがでないっていう maxdopで思い出したけど2016ってたしかデフォルト0じゃなくてインストール時にインストーラが設定するんだっけ
あとtempdbも数指定できたよな 以下のFunctionを作成し
create function dbo.fncA
returns varchar2
as
begin
return 'asdf'
end
以下のsqlで呼ぶと、結果がaとしか返って来ないんですが、asdfと返すにはどうしたら良いでしょうか?
select dbo.fncA() SQL Serverにvarchar2なんてないだろ
自分でvarchar (1)とかで定義してるんじゃないのか >>889
戻り値に桁数していしないからじゃないかな ■ このスレッドは過去ログ倉庫に格納されています