X



Microsoft SQL Server 総合スレ 12
0535NAME IS NULL
垢版 |
2021/09/04(土) 14:28:46.27ID:???
>>534
Command Timeoutなので指定してなければデフォルト30秒なんだけど
開始してからタイムアウトが発生するまでの秒数と合ってる?

https://docs.microsoft.com/ja-jp/dotnet/api/system.data.sqlclient.sqlcommand.commandtimeout?view=dotnet-plat-ext-5.0

サーバー側の負荷状況や実際に処理が実行されてるかをActivity Monitorとかで確認すればいい
Indexed Viewとかじゃなくて単純なViewなら秒単位の時間がかかったりしないから
何か待たされてるんだろうけどぱっと思いつく原因はないな
0536NAME IS NULL
垢版 |
2021/09/04(土) 18:09:08.99ID:sVLT48pB
sql Server側で、クエリパフォーマンス分析や構造分析って
プロファイラー以外になにつかってます?
0537NAME IS NULL
垢版 |
2021/09/04(土) 20:30:42.16ID:???
構造分析ってなんかわからんけど
クエリのパフォーマンス分析はEXPLANが基本 (SET SHOWPLAN_ALL ON)
実際実行した結果はSET STATISTICS IO ONとSET STATISTICS TIME ONで確認

トレースとるのは正常に実行されないクエリに悪影響を及ぼしてるものが
他の方法では簡単に特定できないような場合に使う
性能に影響でるから運用中の本番環境で使うのは最終手段
0538NAME IS NULL
垢版 |
2021/09/05(日) 14:11:40.60ID:???
とりあえず流したSQLとどうやって実行したか曝せよ
ビューの登録ってのが何のことかわからんが、Create Viewがそうそうタイムアウトするとは思えん
0539NAME IS NULL
垢版 |
2021/09/09(木) 20:27:34.53ID:???
alter view ではtime outはよくある
使ってるviewをalterするとデットロックする
0540NAME IS NULL
垢版 |
2021/09/10(金) 01:03:31.08ID:JMgjI8OA
sqlの中の括弧の対応関係を色付けしてくれる機能ってssmsであります?
0541NAME IS NULL
垢版 |
2021/09/12(日) 08:06:05.73ID:???
>>539
deadlockとtimeoutはエラーメッセージが違う
0542NAME IS NULL
垢版 |
2021/09/13(月) 00:55:02.75ID:???
単なるタイムアウトをデッドロックとか言う人多いよね

まあSQL Serverはalter viewもトランザクション内でできたはずだから
デッドロックすることもなくはないんだろうけど
0543NAME IS NULL
垢版 |
2021/09/13(月) 08:13:14.58ID:8fCPiXxw
排他ロックとデッドロックを間違えるレベルはひどいなw
0544NAME IS NULL
垢版 |
2021/09/22(水) 02:05:41.92ID:iue4uJKZ
csvファイルでテーブルをキーが一致したらレコード洗い替えたい。バッチファイルとか実行すると作動するようにしたい。
可能ですか?
0545NAME IS NULL
垢版 |
2021/09/22(水) 12:58:41.05ID:???
Accessはもう諦めたのか?
そんなんじゃ何一つ出来ないぞ
0546NAME IS NULL
垢版 |
2021/09/22(水) 13:34:54.24ID:xdPa75UG
>>545
ん?
0548NAME IS NULL
垢版 |
2021/09/23(木) 12:16:42.00ID:bPVhBfA6
>>547
やり方おしえてよ
0550NAME IS NULL
垢版 |
2021/09/23(木) 20:35:31.15ID:bPVhBfA6
sqlcmdをサーバはインストールしてるけど
クライアントはしてない場合にも
実行できる方法ない?
0552NAME IS NULL
垢版 |
2021/09/23(木) 21:00:49.66ID:???
>>550
何らかの方法でサーバーにログインして実行すればいいんじゃね?
0553NAME IS NULL
垢版 |
2021/09/23(木) 21:10:39.70ID:???
インストールしたらよくね?
0554NAME IS NULL
垢版 |
2021/09/26(日) 10:51:50.76ID:???
>>550
SQLServerのドライバはOS標準で組み込まれてるんだから、バッチ処理で良いんならJSやVBSを使えば良いんじゃないの
PSよりはVBSの方が情報が多いように思うし、OFFICEが使えるならVBAでも良いんじゃないの
というかOFFICEが入ってるならMSクエリとかが使えるか

>>553
クライアント環境にはできるだけツール類はいれたくないだろ
0555NAME IS NULL
垢版 |
2021/09/26(日) 12:12:38.40ID:???
>>554
>クライアント環境にはできるだけツール類はいれたくないだろ

DBを直接操作する人間のクライアントにsqlcmdとかSSMSが入ってないほうが意味がわからないんだけど?
まさかエンドユーザーにやらせようとしてんの?
0556NAME IS NULL
垢版 |
2021/09/26(日) 14:12:03.66ID:5SVUANCV
>>555
そう
一般利用ユーザーにテーブル更新させる
別にそういうとこあるでしょ
0557NAME IS NULL
垢版 |
2021/09/26(日) 15:46:53.78ID:???
>>556
そういうのは普通アプリケーション経由で処理するから
エンドユーザーのクライアント環境でバッチを流したりはしない
入力データが不正だったり更新が競合したりしても
エンドユーザーレベルのリテラシーで対応できるようなものを作る

各ユーザー専用のテーブルのみ更新するような場合で
データが壊れても再作成すればいいような重要度の低いものなら
そういうやり方もありえるのかもしれないが
問い合わせが増えるだけだからまずやらない
0558NAME IS NULL
垢版 |
2021/09/26(日) 16:43:12.12ID:5SVUANCV
>>557
クライアント側のアプリケーションだと
レコード削除はできない制約あるパッケージとか多くない?
スクラッチならやるけど
0559NAME IS NULL
垢版 |
2021/09/27(月) 11:31:27.95ID:BOre3vig
クライアントアプリが制限されているから
BATでやりたいと……

なるほど!理解した!
0560NAME IS NULL
垢版 |
2021/09/27(月) 14:50:56.29ID:???
データの洗い替えをユーザーにやらせるのは聞いたことないな
マスタメンテで複数件一括更新することを洗い替えと呼んでるのかもしれないが
0561NAME IS NULL
垢版 |
2021/09/27(月) 17:18:19.08ID:???
マスタメンテ機能そのものが用意されてなさそう
0562NAME IS NULL
垢版 |
2021/09/28(火) 00:20:14.32ID:moPRyYxu
マスタじゃないよ、トランザクション
0563NAME IS NULL
垢版 |
2021/09/28(火) 07:33:03.07ID:???
闇が深すぎて救いようがないな
0564NAME IS NULL
垢版 |
2021/09/28(火) 10:02:47.41ID:???
トランザクションなら本来の意味での「洗い替え」っぽいけど
だとしたらユーザー入力のcsvファイル使って
ユーザー環境でバッチ実行させる意味がますますわからん

わかる人いたら解説してくれ
0565NAME IS NULL
垢版 |
2021/09/29(水) 17:04:04.45ID:???
こういう当たり前のアプリケーション設計知識って実務経験以外で手に入れるのは難しいのかもね
0566NAME IS NULL
垢版 |
2021/10/03(日) 07:29:19.61ID:???
>>564
話を聞いてて、うちの会社でも同じような例があった
本社のシステム部門がDBを管理していて、事業部のシステム部門がマスタを更新したいって例があった。
本社部門は、テーブルを直接操作する権限は与えたくないんだけど、更新作業を自分たちでやりたくない、インターフェースのアプリを作りたくない
というような流れ、本社部門がしっかり作りこめば良いだけなのにね
0567NAME IS NULL
垢版 |
2021/10/03(日) 09:51:16.00ID:???
システム部門がユーザーの場合は全然話が違うでしょ

やり方はいろいろ有るけど単純なのはファイル連携で定期スケジューリングしたバッチジョブ流すだけ
エラー時は入力データを用意した関係者にエラー内容を通知するようジョブを組んでおけば十分なので
ユーザーインターフェースを用意しなきゃいけないような話ではない

自分たちが管理してないDBを直接SQLで更新したいってのも論外だし
事業部のシステム部門があるような大企業でマスタの更新バッチすら作らないような本社システム部門はかなりヤバい
0568NAME IS NULL
垢版 |
2021/10/03(日) 12:27:53.85ID:???
てか、事業部がどんな大きさなのかわからんけどシステム部門を抱えてるレベルなら事業部のDB持ってないの?
コンプライアンスとかで本社のシステム部門が統括管理してるのかな?
それであっても簡単なメンテツールを事業部システム部門が作ればいいだけだと思うけど…
0569NAME IS NULL
垢版 |
2021/10/13(水) 21:58:34.60ID:???
updateなのに重複するキーを挿入できませんと怒られる
そんなこと有り得るのかな
0571NAME IS NULL
垢版 |
2021/10/14(木) 00:17:12.64ID:???
キー値を書き換えた
トリガーでなんかした

まあ他にもあるかもしれんが、ありえる
0572NAME IS NULL
垢版 |
2021/10/14(木) 00:19:10.66ID:???
>>567>>568
おっしゃる通りです
日立とかIBMのホスト系しか扱ったことがない方が多くて、人員も世代交代に失敗していて古いシステム構成のまま改悪が続いてる
事業部側も人員がいなくてシニア契約社員が主戦力になってるような会社なんです
若い有能な人は見切りをつけて転職していく
個々の担当者はそれなりなんだと思うけど、経営がちょっと抜けてる感じでどうしようもない
0573NAME IS NULL
垢版 |
2021/10/14(木) 07:04:25.37ID:???
>>570
ありえました
と同時に絶望しました
もう作った人に修正させてと思いました
0574NAME IS NULL
垢版 |
2021/11/10(水) 05:15:39.36ID:???
付加列インデックスって関数の引数に使ってくれる?
where句、select句どっちも使う、使わない、どっちかしか使わないとかわかる資料ってどっかにあるかな?
0575NAME IS NULL
垢版 |
2021/11/10(水) 16:34:28.00ID:???
SQL Serverは関数インデックスをサポートしてないから
付加列インデックスかどうかやkeyかnon-keyかに関係なく
関数の引数に使った場合はindex seekにはならないよ

computed columnでkeyならwhere句で使える
non-keyはwhere句では使えない
0576NAME IS NULL
垢版 |
2021/11/11(木) 16:52:52.42ID:???
>>575
やっぱそうだよね。
なんか遅いクエリの実行プラン確認したときに出てきた足りないindexの中の付加列にisnull関数噛ませてるカラムが出てたんでもしやと思ったんだけど。
バージョンは2017です
ありがとうございました
0577NAME IS NULL
垢版 |
2021/11/11(木) 18:26:27.79ID:???
ん?
isnullってことはwhere句で使ってるんじゃないの?
であれば付加列インデックスの使い方間違ってる

あとちゃんとインデックス作っても
isnull自体にパフォーマンスの問題あるから違う方法に変えたほうがいいかもしれない
0578NAME IS NULL
垢版 |
2021/11/11(木) 20:29:26.94ID:???
>>577
そう。where句で使っていてselect句にはないカラムです。
付加列インデックスの使い方の件はわかってたんだけど、実行プランの足りないインデックスにisnull関数に噛ませてるカラムが付加列に入ったインデックスが出てきたんで、あれ思い違いしてたんかな?と思って質問させていただきました。

違う方法についてはよくある触りにくい、他の方法はコストがかかるってやつです。
まぁ、インデックスの追加も方法の一つとして、他の案も含めて考えます。
0579NAME IS NULL
垢版 |
2021/11/11(木) 20:51:37.87ID:???
この一連のやり取りが理解できないのは俺だけか?

とりあえず、その他の条件が満たされるなら
関数の引数でも、付加列の目的である余計なキー参照はしなくて済むぞ
0580NAME IS NULL
垢版 |
2021/11/11(木) 21:31:46.51ID:???
>>579
分かりづらかったのならすまんね。
今回の質問は問題解決ではなく仕様確認になるのかな

とある遅いクエリ流したら実行プランの確認でこれが足りないよって言われたインデックスにwhere句のisnull関数の引数に使ってるカラムが付加列として出てきました。
関数の引数にインデックスのカラムは使えないと思ってたんだけど、付加列ならいけるの?ってことで質問しました。

とある遅いクエリの改善についてはどうでもいいです
0581NAME IS NULL
垢版 |
2021/11/11(木) 21:43:45.41ID:6iIlck1C
なぜやってみないのか?
0582NAME IS NULL
垢版 |
2021/11/11(木) 23:20:50.43ID:???
使えないとはどういうことを言ってるんだ?
インデックスはってもそのカラムが使えなくなることなんてないぞ

実行時にそのインデックス使うかどうかはわからんがな
そのパターンでインデックス使って早くなるのは大体はキー参照しなくて済むパターン
だから通常のインデックス列ではなくて付加列で良いというお薦めだろう
0583NAME IS NULL
垢版 |
2021/11/11(木) 23:40:31.54ID:???
さすがにそれは文脈でわかってやれやw
0584NAME IS NULL
垢版 |
2021/11/12(金) 00:03:37.35ID:???
>>582
日本語下手でごめんね。

例えば、
create table AAAA
(
colmun01 char(4) not null
,colmun02 char(4) not null
,seq int not null
,first_date varchar(8) null
,last_date varchar(8) null
,primary key
(
colmun01
,colmun02
,seq
)
)

ってテーブルがあって

select colmun01
from AAAA
where colmun02 = 'BBBB'
and '20210401' between isnull(first_date, '00000000') and isnull(last_date, '99999999')

ってクエリを実行して実際の実行プランを確認したら

CREATE INDEX CCCC
ON DDDD( colmun02)
include(first_date,last_date )

が足りないんじゃない?
って出ました。

付加列の中のカラムはisnull関数の引数なんだけどなんで?

ってなったんで最初の質問になりました。
(WEBだけだけど)調べても出てこなかったんで

first_date、last_date が date型じゃなくてvarchar型 なのは許して。元のテーブルがそうなんで
0585NAME IS NULL
垢版 |
2021/11/12(金) 00:37:13.12ID:???
サジェストされてるインデックス追加すれば付加列としての効果はあるね

でもそもそもBETWEENの左側に固定値をもってくる書き方って有りなのかなぁ
isnull不要にしてfirst_data, last_dateをキーとしてインデックスはっても
Index Seekにはならないような気がするんだけど実際どうなんだろ
0586NAME IS NULL
垢版 |
2021/11/12(金) 01:46:20.70ID:???
>>585
付加列の効果あるんですか。

>でもそもそもBETWEENの左側に固定値をも>ってくる書き方って有りなのかなぁ
なるでしょっ、て思い込んでたんで改めて
isnull不要にしてfirst_data, last_dateをキーとしてインデックスはってfirst_data, last_dateのbetweenのみで実行してみたら、最適化の段階で大なり小なりに展開されてindex seekになってますね。実行プラン見る限りは
0587NAME IS NULL
垢版 |
2021/11/12(金) 01:48:02.27ID:???
☓ isnull不要にしてfirst_data, last_dateをキーとしてインデックスはってfirst_data, last_dateのbetweenのみで実行してみたら

○ first_data, last_dateをキーとしてインデックスはってisnull不要にしたfirst_data, last_dateのbetweenのみで実行してみたら
0589NAME IS NULL
垢版 |
2021/11/12(金) 17:47:15.17ID:ud1MiESj
>>584
WHERE句の条件の書き方が異常
0590NAME IS NULL
垢版 |
2021/11/12(金) 17:48:55.65ID:ud1MiESj
>>585
もうあんたの書き込みはネタとしか思えないんだけど?
0591NAME IS NULL
垢版 |
2021/11/12(金) 18:25:15.51ID:wE0oiQg0
>>584
インデックスにこだわっている理由は?
0592NAME IS NULL
垢版 |
2021/11/12(金) 19:08:33.33ID:???
>>591
こだわっている理由というか、このクエリでなんでこの条件がパフォーマンス改善の候補として上がってきたのかの理由が知りたい。

自分の今持っている知識が間違っているのだろうけど、この付加列が入ってくる理由がわからないので


前にも書いたけど、元の処理のパフォーマンス改善自体はどうでもいい
0593NAME IS NULL
垢版 |
2021/11/12(金) 19:18:04.33ID:wE0oiQg0
isnull関数を使っているから、他人には何を知りたいのかわからない。
0594NAME IS NULL
垢版 |
2021/11/12(金) 19:42:04.72ID:???
インデックスに付加列しとけばインデックスの読み込みだけで済むからでしょう
付加列にないカラムを参照したらインデックス以外にテーブルも読み込みしないといけないから遅くなる
0595NAME IS NULL
垢版 |
2021/11/12(金) 19:54:35.42ID:wE0oiQg0
典型的なSQL Server脳だなw
0596NAME IS NULL
垢版 |
2021/11/12(金) 19:55:36.00ID:wE0oiQg0
インデックスそのものが大きければ意味がない。
0597NAME IS NULL
垢版 |
2021/11/12(金) 21:42:13.95ID:???
いつもの嫌なやつ召喚しちゃったね・・・
0598NAME IS NULL
垢版 |
2021/11/12(金) 22:17:40.73ID:wE0oiQg0
インデックススキャンにしなければいけない→テーブル全体のインデックスを作る→このインデックスはいらないのでは?
0600NAME IS NULL
垢版 |
2021/11/13(土) 19:09:19.46ID:???
付加列の話を出したものです。
一応簡易的にデータを作って確認してみたので結果を書きます。

環境:
Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) Express Edition (64-bit)
on Windows 10 Pro 10.0 <X64> (Build 19043: ) (Hypervisor)
実施内容:
互換性レベル:SQL Server2017 のデータベース上で
create table AAAA
(
colmun01 char(4) not null
,colmun02 char(4) not null
,seq int not null
,first_date varchar(8) null
,last_date varchar(8) null
,primary key clustered
(
colmun01
,colmun02
,seq
)
)
の形のテーブルをAAAA〜EEEEの5つ作成。同一のデータを100万件投入
各々
CREATE INDEX IX_XXXX ON BBBB(colmun02)
CREATE INDEX IX_XXXX ON CCCC(colmun02) include(first_date, last_date )
CREATE INDEX IX_XXXX ON DDDD(colmun02, first_date, last_date )
CREATE INDEX IX_XXXX ON EEEE(first_date, last_date )
のindexを作成

各テーブルに対しての
select colmun01
from <テーブル名>
where colmun02 = 'BBBB'
and '20210401' between isnull(first_date, '00000000') and isnull(last_date, '99999999')
を1クエリでまとめて実行し実際の実行プランを確認
0601NAME IS NULL
垢版 |
2021/11/13(土) 19:10:10.28ID:???
結果:
AAAA Clustered Index Scan となりクエリコスト30%
BBBB Clustered Index Scan となりクエリコスト31% ※作成したindexは効かず
CCCC IX_XXXX がindex Seek となりクエリコスト6%
DDDD IX_XXXX がindex Seek となりクエリコスト6%
DDDD IX_XXXX がindex Scan となりクエリコスト28%

となりました。
この結果からIndexのキー列、または付加列が関数の引数として使用されている場合もindexが効く場合があるようです

ちなみにBBBBテーブルの実行の際にヒント句でindexを強制した場合は
AAAA クエリコスト8%
BBBB クエリコスト81%
CCCC クエリコスト2%
DDDD クエリコスト2%
DDDD クエリコスト8%
となりました。
0602NAME IS NULL
垢版 |
2021/11/13(土) 19:29:49.86ID:???
>>575の通りの理解だったので、なぜこのように動くのかがわかりません。
何か知っている方や理解に誤りなどありましたら教えていただけると助かります
0603NAME IS NULL
垢版 |
2021/11/13(土) 21:36:11.89ID:???
>>601
演算のパーセント表示だけで比較されてもわからんがな
0604NAME IS NULL
垢版 |
2021/11/14(日) 02:47:16.70ID:???
>>603
では、他にどのような情報がアレバ良いのですか?
0605NAME IS NULL
垢版 |
2021/11/14(日) 21:36:16.11ID:???
クエリコストの大小を比較したいなら各クエリ全体のコスト
コスト1000の6%と、コスト10の30%なら後者のほうが効率がいいからね

SET SHOWPLAN_ALL ON;
SET STATISTICS PROFILE ON;
SET STATICTICS IO ON;

↑この3つでそれぞれ表示される値の意味をdocs見て把握しておくといいと思う
0606NAME IS NULL
垢版 |
2021/11/15(月) 00:21:06.02ID:???
>>605
ありがとうございます。
ただ今回自分が知りたいことはコストはあまり関係ないんですよね。

違う結果になったことを明示するための情報としてコストを出したつもりでしたが下記の知りたいことからすると不要な情報でした。
すみません。

知りたいことは実行したクエリ

select colmun01
from <テーブル名>
where colmun02 = 'BBBB'
and '20210401' between isnull(first_date, '00000000') and isnull(last_date, '99999999')

のfirst_date,last_dateはisnull関数の引数なのになぜ付加列、またはindexのキー列が利用されて、index seekのみで解決されているのか?
になります。※1

元々indexのキー列、付加列は関数の引数や計算が含まれるとwhere句で利用されない(と思っていた)ため、CCCCテーブル、DDDDテーブルの実行はindex seek後にクラスター化indexのキー参照が起こると思っていました。
これはヒント句でindexの利用を矯正したBBBBの実行と同じ動きです。

一応テストした結果として、※1については解決できる場合があり、そもそもの自分の知識が誤っていることがわかりました。

ので「indexのキー列、付加列が関数の引数や計算が含まれてもwhere句で利用される」のはどのような場合か、明確な基準があるのかなどがわかれば教えていただければとおもいます。

一部表現が適切でなく伝わりにくい部分があるかと思いますが汲み取っていただけると助かります。
0607NAME IS NULL
垢版 |
2021/11/15(月) 01:23:19.68ID:???
利用されないのはオプティマイザが利用しても効果がないと判断したからで、効果があると思えば利用する
それだけのこと
べつに引数や計算だろうと直接の比較だろうと同じなんだが
0608NAME IS NULL
垢版 |
2021/11/15(月) 02:06:34.07ID:???
>>606
column02だけでindex seekしてるのか
column02に加えてfirst_dateやlast_date含めてindex seekしてるのかseek predicatesで確認した?
0609NAME IS NULL
垢版 |
2021/11/15(月) 23:18:02.81ID:???
>>608
これでした。ありがとうございます。
index seekの中を確認したところ、column02のみがseekでisnull関数の引数になっているfirst_dateとlast_dateはwhereでの参照でした。

CCCCとDDDDのクエリからisnull関数を外したものの実行結果と比較していろいろ合点がいきました。

GUI上のindex seekの表示しか見ていない浅い確認でそれ以降の知識がなかったため、自力でここにたどり着くのは難しかったと思います。
あらためてありがとうございました。

ついでにで申し訳ないのですが、今まで実行プラン上でindex seek、またはindex scanになっていることを「indexが効いている」と表現していたのですが、これは一般的に間違っていますか?
質問の中で色々表現がおかしく、理解しづらい部分もあったと思いますので少しでも修正できればと思っております。
0610NAME IS NULL
垢版 |
2021/11/15(月) 23:40:19.19ID:???
>>607
今迄はあなたと同じように「オプティマイザの気分」で済ませてたのですが、今回は少し突き詰めたかったのです
0611NAME IS NULL
垢版 |
2021/11/16(火) 00:00:34.73ID:???
SQLserverのハードを買い替えようと検討してもるんだけどストレージをSSDしても大丈夫か聞きたい。
SSDは書き込みの回数制限があり、頻繁な書き込みのあるSQLserverには向かないと昔聞いた事あったんだけど今は大丈夫か教えて下さい。
0612NAME IS NULL
垢版 |
2021/11/17(水) 00:13:51.33ID:???
>>611
SQLserverに向かないってよりもアクセス頻度の問題のような気がするけど。
ssdって言ってもqlc,tlc,mlcのような種類もあるし。
ただ、前にベンダーに見積もりとった時に聞いたのは利用用途が中規模のwebサービスなら、5年位であればそんなに気にしなくて良いって言われた。(ここでのSSDの種類が何か、中規模がどの程度かは忘れた。参考にならずすまん)
ちなみにどんな利用用途なの?
社内用か、インターネットに公開してるサービスなのか(1日のアクセスはどの程度か)、それとも個人用か

個人用でもなければどこかのベンダーに話聞いちゃった方がいいかも
0613NAME IS NULL
垢版 |
2021/11/17(水) 18:17:30.15ID:???
>>612
アドバイスありがとう
用途は会社でデータウエアハウス的利用です。日次で基幹システムからデータ取得して蓄積するようなデータサーバです。
DELLの直販で買う予定でサーバ向けSAS接続のSSDだから大丈夫だと思う。
一応DELLに問い合わせしときました。
0614NAME IS NULL
垢版 |
2022/01/22(土) 16:40:07.61ID:ANkLRIq9
レプリケーションというのを初めて設定しているのですが
「スナップショットエージェントが起動していません」のMSGが
出てスナップショットが取れません。
これってSQL Server エージェントとは別物ですか?
SQL Server エージェントは起動しているのに…。
すみませんが、わかる方がいたら教えて下さい。
0615NAME IS NULL
垢版 |
2022/01/26(水) 17:15:02.37ID:IRw1UwiV
オブジェクト名'sysservers'が無効です。エラー208
これどういった調査をすれば良いのでしょうか?
0616NAME IS NULL
垢版 |
2022/01/26(水) 19:31:05.33ID:???
sys.servers じゃね?
0617NAME IS NULL
垢版 |
2022/01/27(木) 01:31:47.35ID:???
将来のバージョンで廃止予定とかになってるけど、バージョンいくつ使ってるんだろうな
0619NAME IS NULL
垢版 |
2022/01/27(木) 17:53:32.89ID:???
何をどうしたらそのエラーが出たのかと、エラーメッセージを正確にかけ
0620NAME IS NULL
垢版 |
2022/01/27(木) 18:24:31.13ID:???
サブスクリプションの新規ウィザードで
パブリケーションを選択して次へをクリックすると
先のメッセージと一緒に「パブリケーションの
情報が取得できません」のMSGが出て先に進めません。
SQL SERVER2008R2です。
2019の評価版で試すと問題なく設定できます。
0621NAME IS NULL
垢版 |
2022/01/27(木) 21:44:41.14ID:???
パブリケーション側のバージョンは?
0622NAME IS NULL
垢版 |
2022/01/27(木) 22:05:05.99ID:???
パブリケーション側のバージョンが2008なのかな?
SSMSのバージョンを2008をサポートしてる古いやつで試すといいんでない?
0623NAME IS NULL
垢版 |
2022/01/28(金) 05:39:07.73ID:???
>>622
パブリケーション側が2008です。
SSMSのバージョンについては
全く頭にありませんでした
試してみます
ありがとうございました
0624NAME IS NULL
垢版 |
2022/01/28(金) 08:10:53.42ID:98qoK9/E
>>622
サブスクリプション側のSSMSをver10に変えたら出来ました。
本当にありがとうございました。
0625NAME IS NULL
垢版 |
2022/03/16(水) 06:19:16.79ID:???
大したデータ量でもないのに「クエリの実行中にMemoryGrantを25秒間待機する必要がありました」との警告が出て処理が遅くなるんですが対処法はないでしょうか。
また値が1, (2 or 3), (4 or 5)でそれぞれ集計したいのですがどのようなSQLにすればいいのでしょうか
0626NAME IS NULL
垢版 |
2022/03/16(水) 16:26:28.69ID:???
>>625
>大したデータ量でもないのに「クエリの実行中にMemoryGrantを25秒間待機する必要がありました」との警告が出て処理が遅くなるんですが対処法はないでしょうか。
テーブルとインデックスの構成、クエリ内容、実行プランを確認して原因を突き止めてください
原因が分かったらテーブルやインデックスを変更したりクエリを変更して対処してください

>また値が1, (2 or 3), (4 or 5)でそれぞれ集計したいのですがどのようなSQLにすればいいのでしょうか
現在のテーブル構造と欲しい結果のイメージを提示してください
0627NAME IS NULL
垢版 |
2022/03/16(水) 17:12:02.73ID:???
>>625
> また値が1, (2 or 3), (4 or 5)でそれぞれ集計したいのですがどのようなSQLにすればいいのでしょうか
select
case when 値 = 1 then '1' when 値 = 2 or 値 = 3 then '2 or 3' when 値 = 4 or 値 = 5 then '4 or 5' end as 値,
sum(集計列) as 集計
from テーブル
group by
case when 値 = 1 then '1' when 値 = 2 or 値 = 3 then '2 or 3' when 値 = 4 or 値 = 5 then '4 or 5' end
0628NAME IS NULL
垢版 |
2022/03/19(土) 18:54:37.22ID:???
開発サーバにいれるSQLServerのエディションをDeveloperにするの問題ないでしょうか
利用目的はシステム改修の開発単体テストから総合テスト、受入テスト
あとは本番サーバで不具合でたときの検証目的で使用するのは数名〜Max20人くらい
バージョンアップの準備してて、経緯不明なんですが開発サーバが今Enterprise入ってて変えて問題ないなら変えたい
本番はEnterpriseです
0629NAME IS NULL
垢版 |
2022/03/20(日) 13:06:14.65ID:???
>>625
MemoryGrantで待機ってメモリが足りてない
・SQLServer以外のプロセスがメモリ食ってSQLServerのメモリが小さくなってる可能性
→SQLServerの最大メモリ最小メモリの設定、SQLServerのサービスアカウントにメモリのページロックの特権がついてるか
・メモリめっちゃ使うクエリが同タイミングで動いてる可能性
→パフォーマンスモニタのBufferManagerカウンターで急激な変動がないか確認、動的管理ビューでその時間帯に動いてたクエリででかいのを調べる
・そのクエリがめっちゃメモリ食う
→これは626

昔使うメモリの計算に不具合あった覚えあるけど、あれは2008か2012くらいのSPで解消されてたような
0630NAME IS NULL
垢版 |
2022/03/25(金) 16:26:14.25ID:???
Express版は10GBまでは使用できるようですが、
10GBを超えそうだという警告などは設定できるのでしょうか?
定期的に使用領域を確認していないと、ある日突然なにもできなくなってしまうのでしょうか?
0631NAME IS NULL
垢版 |
2022/03/26(土) 05:22:50.26ID:???
>>630
このページにあるクエリを実行するスクリプトを作成し、タスクスケジューラで定期実行してみてはどうでしょうか
クエリの結果をもとに、自分で決めたしきいち値超えたら警告メールを送るような処理も加えると監視をほぼ自動化できそうですね
0632NAME IS NULL
垢版 |
2022/03/26(土) 05:24:39.02ID:???
>>630
ページの情報が抜けてた。。。
「データベースのデータとログの領域情報を表示する」でググってみてください
0633NAME IS NULL
垢版 |
2022/03/27(日) 04:43:57.62ID:g/u0dazF
ディスク容量を常に気にしていない運用という点が突っ込みどころなんだろうな
0634NAME IS NULL
垢版 |
2022/03/27(日) 09:21:36.36ID:???
今どき10GBの容量を気にする運用って…
レスを投稿する


ニューススポーツなんでも実況