Microsoft SQL Server 総合スレ 11 [無断転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
Microsoft SQL Server (Transact-SQL) の総合スレッドです。
・Microsoft 公式サイト
http://www.microsoft.com/japan/sql/
過去スレとかめんどいから誰か適当に貼って >>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
戻り値に桁数していしないからじゃないかな SELECT
M.ID
,(SELECT A FROM テーブル値関数(M.ID, M.DATE)) AS A
,(SELECT B FROM テーブル値関数(M.ID, M.DATE)) AS B
,(略)
FROM M
WHERE (略)
こういう風にテーブル値関数を使うと、テーブルM・1行当たり 2回 動いてしまうと思います。
構造体かTUPLE型か、そういう風な概念を使って、効率的に動かす手段はないでしょうか? その関数が何してるかしらんが、それテーブル値関数の必要ないんじゃね
関数が2行以上返したら実行時エラー吐くんじゃね
実行時の効率もとめるなら関数じゃなくてビューにしてJOINしろよ
テーブル値関数とでもJOINはできるはずだけどな >>882
そもそもあんたは設定が同じかどうかも確認せずに比較している。
あなたのいう同じは同じではないと思うよ。 質問なのですが、SQLでファイルの存在まで確認するのは不可能でしょうか?
例えば
SELECT *
FROM T_Anken
WHERE AnkenID = '00123'
AND FileExist('C:\AnkenFile\00123.txt')
みたいなことをしたいんですが、難しいですかね? データベースのバックアップを定期的に取りたい、っていう場合、
.mdf ファイルだけバックアップしておけばOK?
SSMSの機能は使わず、ファイルのバックアップという意味で。
あと、巨大な .ldf ファイルがあるんだけど、これ削除してよい? >>898
mdfとldfはセットだ
復旧モデル
BACKUP DATABASE
DBCC SHRINKFILE
とかで検索 復旧モデル単純にすることからだな
そんな質問するとこからしてトランザクションログから復旧する要件なんてなかろう >>899 サンクス。ldf が2GBあるんだよ、これ消したい。
>>900 そうそう。localDB で自分のPC内で遊びでやってるだけ。
でもPCや 保存先のSSD がダメになった時のことを考えて定期的に外部にバックアップ取りたいのよ。 ログが肥大すんのは復旧モデルが「完全」だからだ「単純」に変えろ mdfだけでも保証はされないけど一応復旧できるんだっけ?
サービス停止するかデタッチしないとコピーできんかったと思うし、バックアップとるにもDB複製ふるにも普通にバックアップするほうがお手軽だから忘れちゃった >>903
> サービス停止するかデタッチしないとコピーできんかったと思うし
コピーはできるけど役に立たないデータがコピーされるだけ 「単純」にして毎日夜間バックアップの一週間ローテ(5世代)とかでやってる企業も多いね。 圧縮あるしサイズ小さけりゃ差分とか考えなくていいからな
うちはたまにテストや確認で○時のときのDBを検証環境に作ってって要望がくるから完全にしてる 結論としては、
・エクスプローラ上からのファイルコピー等でのDBバックアップは不可
(ファイルコピーはできるがDBとして復元できない)
でよいの? >>907
デタッチすればファイルコピー出来るし、コピーしたものを他のSQL Server入ったPCで復元(アタッチ)することも出来る >>907
DB停止状態(コールドバックアップ)なら可能 リレーショナルデータベースがそんな単純なものだと思っているやつは、Windowsもファイルのコピーで別のハードディスクに移せると思っているんだろうな。 MSのAccessとか、あと開発とかしたことないけどSQLiteとか、お手軽に使えるのもあるからねえ
そういうのしか知らないとぴんとこないかもな データベースじゃなくてDBMSって言ってほしいがな >>914
SQL-Serverだってmdf, ldfをコピーするだけなら大して変わらん
MS-AccessとかSQLiteだって稼働中にコピーしたらガラクタになるのも同じ >>916
DBMSはどっちかって言うとSQL-Server本体の方
今の話はデータファイルの方だからDBMSはちょっとピントずれてる >>915
SQLiteとSQL ServerやOracle Databaseを比べるのはおかしい。
自転車とリニアモーターカーが同じだと言っているようなもの。 >>920
>>912が「リレーショナルデータベース」と言っていることに対するツッコミやろアホか >>921
RDBMSとリレーショナルデータベースをわざわざ言い分けるのはよほどの専門家同士の話で、同義ととらえるか、むしろRDBMSでは一般人には意味が伝わらないから避ける。 リレーショナルデータベースにかわりがない。リレーショナルデータベースの定義を知らないのか? 関係データベースと言わないと調べてもわからないかな? 厳密な定義の話は難しいが、データベースファイルをコピーする話ならDBMSのほうが適切じゃないのか?
なんで稼働中にコピーしたらダメなんって問われたらリレーショナルデータベースの「管理」の話になってくるでしょ DBMSに限らず内容を書き換えてるファイルをコピーしたら一貫性が保てないのは常識 それはそうなんだけど、それ言い出したらファイルコピーという一点において、>>912の「リレーショナルデータベースがそんな単純なもの〜」という発言が単純なテキストファイルとどう違うのってことになる
いや、データ更新時のデータ保証まで考えるなら君の言ってることは正しいし、そう言いたいならそれでいいけど >>912がおかしいって言いたいだけ
DBMSって言っても単なるアプリケーションソフトウェアだし いま話になってるのはその1アプリケーションのデータファイルの話
それをリレーショナルデータベースの話と言うのはあきらかな間違い >>931
あなたが思っている製品はそんなものだから、そう思っているんでしょう?
Oracle Databaseをよく知っているなら、あなたのような発言はできない。 >>930
実際にMySQLはデータファイルがただのファイルだぞ。
Oracle Databaseだったらよほどの知識がないと触ってもいけないどころか、ASM構成だったら触れもしない。 >>933
誰がそんなことを書いたのか?どこにも見当たらない。SQLiteにデータベース管理システムがないと言い張ったやつがいただけ。
データベース管理システムのない有名な製品なんて俺はオタクではないので知らない。 かたくななまでに自分の非を認めない人というのがいます。何か責任を問われることが起こっても、誰か人のせいにしたり環境のせいにしたりします。
自分に非があることを素直に認められないのはどうしてなのか、その心理にはこんなことが隠されているようです。
https://tabi-labo.com/213871/not-apologize-ppl データファイルコピーの話に対して、
リレーショナルデータベースがそんな単純なものだと思っているやつは云々言ってたやつがいたと思ったんだが >>934
ん?
普通のサーバーで稼働してるOracleなら単なるアプリケーションだし、稼働中に単にコピーしたら整合性は取れんよ
逆に止まってる状態ならデータファイルコピーで普通にバックアップは取れる
オラクル 物理バックアップ
とかでググってみ >>934>>935
Oracleといってる時点でRDBというよりRDBMSの話だろ、自分でいってて気づかないのか? >>940
RDBでRDBMSがないものを挙げてください。きっと答えられませんよね? >>939
Oracle Databaseはシャットダウンしていたとしても、そのままデータファイルのコピーだけでは済みません。
無知にもほどがあるでしょうに。
だいたいRDBMSをただのアプリケーションだと言い放つのは、よほどの素人でしょうが。 リレーショナルデータベースとリレーショナルデータベース管理システムが別個というしつこい主張は何がしたいのか?
SQL Serverの場合、別にインストールするManagement Studioならこういう誤解は理解できる。
しかしManagement Studioはただの管理ツールであって、データベース管理システムそのものではない。 >>945
あたり前だろうが馬鹿かお前は
いうにことかいてManagement Studio出してくるとは思わんかったわ
いいからRDBMSがないRDBあげて つまりRDBとRDBMSの区別のつかない人が暴れてるだけか もう一回書くけど、まさかこの話の流れでManagement Studio出てくるとはなあ
ここ数年で仕事に関する話で一番度肝抜かれたかもしれん、完敗だわもう >>945
機会があるなら、一度サーバーとストレージ全部ぶっ壊れたと想定して外部ディスクやテープにしかないバックアップから全部戻すなんてことやってみればいい
そういうのしてると、勝手さえわかれば所詮そんなものって気付く >>944
> Oracle Databaseはシャットダウンしていたとしても、そのままデータファイルのコピーだけでは済みません。
わざわざキーワード書いてあるんだからちゃんとググれよ
http://www.atmarkit.co.jp/ait/spv/0606/30/news130.html
> だいたいRDBMSをただのアプリケーションだと言い放つのは、よほどの素人でしょうが。
よくわかってない人はなぜかコンパイラとかDBMSとかを特別なものとして扱いたがる w
Oracleのインストールとかしたことないでしょ?
単に使うだけならOfficeのインストールとたいして変わらんよ
まあAMSとかRACとか言い出したら設定は死ぬほど面倒だけどな >>937
自己紹介w
毎回、レベルの低いところでマウント取ろうとするから、周りと会話が噛み合わなくなることに早く気づきなよ RDBMSだからファイルコピーが出来ねえとかガイジか
稼働中はファイルが閉じられとらんのだから出来るわけねえだろアホウが >>952
お前はファイル共有モードについて勉強してから出直せ
レベル低すぎる リレーショナルデーターベースって
所定の構造のデーターの集合を保持していて、所定の方法で、データーが保存、変更、削除、参照ができるもので良い?
例えば、所定の構造のデータを保持する、Excel bookと保存、変更、削除、参照の手順書とか データベースそのものには変更方法等の規定はないし
その特定の構造がリレーショナル形式でなければ「リレーショナル」データベースとは呼べんな 考えたこともなかったけど、SQL Serverのデータファイルでファイル共有モードとかできるの?
あと思ったけどReadOnlyにしたらコピーできるんかね、やってみるか >>953
おめーはファイルバッファについて勉強しろハゲ
ただでさえDBはログキャッシュ持ってるんだ
書き出されてないデータなんぞごまんとあるわハゲ >955
Excel表でその様なリレーショナルな構造を作れば、要件を満たしているのですね? >>957
コピーできない話はもういいのか? w
バッファーとかキャッシュの話はまた別の話な >>959
で? 不完全なファイルコピーできてそれが何だってんだ?
ちったあ頭使えハゲ 元はなんだっけ?
SSMS使わずにファイルコピーでバックアップしたい→稼動中は無理
って話だっけ? >>960
そんなもんはとっくに書かれてる → >>904
周回遅れすぎだろ w >>961
そう → >>898
>>912 がバカ晒してグダグダになってるだけ >>964
まあSQLiteみたいなインプロセスな奴だとデータベース管理システムって言うのはちょっと違和感あるかな RDBMSが備えるべき最低限の機能はって話を決めんとな
コンピュータ上で何らかのプログラム使ってリレーショナルなデータ扱ったとき
そのプログラムは全部RDBMSだろって話になるから
まあ、スレ違いだな
別スレ立ててやってくれ スレ違いではあるんだが、2年たっても消化できないスレが勢い上位の版でスレたててもなあ Windows Server 2012上で動いているsql serverのテーブルを同じ
Windows Server 2012上で動いているMySQLのテーブルに毎日一回
コピーしたいんですが、一般的なやり方を教えて下さい。
sql serverで何かそう言うジョブを設定するなど可能でしょか? >>969
例えばどんなアプリ?
>>970
どんなジョブを書けば良いの? おまいさんのレベルがわからんからまず自分で考えた方法を書こうぜ レス数が950を超えています。1000を超えると書き込みができなくなります。