X



Microsoft SQL Server 総合スレ 12

0402NAME IS NULL
垢版 |
2020/09/05(土) 20:13:10.43ID:???
>>401
システムデータベースって言葉の解釈が他と違う気がする
master,msdb,model等を指して話ししてる?
0403NAME IS NULL
垢版 |
2020/09/05(土) 23:46:16.40ID:???
>>402
> master,msdb,model等を指して話ししてる?
そうです。
他のPCに移すってことは、そう言うことでしょ?
その他に、レプリケーション用のDBも含むかな
0404NAME IS NULL
垢版 |
2020/09/05(土) 23:48:22.94ID:???
>>402
>>396が言われているのは、master,msdb,model等のことだと思ってレスしてましたよ
0405NAME IS NULL
垢版 |
2020/09/06(日) 11:44:41.42ID:???
>>403
>>404
じゃ俺が文脈読み間違えてるだけだね(´・ω・`)すみません
0406NAME IS NULL
垢版 |
2020/09/06(日) 21:36:15.51ID:???
システムデータベースバックアップなんて必要なの?
0407NAME IS NULL
垢版 |
2020/09/06(日) 22:53:53.53ID:???
バックアップ自体はめっちゃ必要でしょ
0408NAME IS NULL
垢版 |
2020/09/07(月) 02:36:47.59ID:???
とったバックアッップいつ使うの?
ユーザデータベースはわかるけど
システムデータベースをリストアするイメージが湧かない
0409NAME IS NULL
垢版 |
2020/09/07(月) 07:53:42.40ID:???
ハードウェア故障とか(震え)
0410NAME IS NULL
垢版 |
2020/09/07(月) 10:36:53.26ID:???
単体で動かしてるなら再インストールして必要な分再設定のほうが簡単だがな
0411NAME IS NULL
垢版 |
2020/09/07(月) 11:14:37.06ID:???
“必要な分”が漏れなくすべてミスなく再設定できてるかどうかどうやって確かめるの?
0412NAME IS NULL
垢版 |
2020/09/07(月) 16:11:23.92ID:???
大事なのは環境構築の作業ログはちゃんと残そうぜだっぺ
0413NAME IS NULL
垢版 |
2020/09/07(月) 18:06:08.83ID:???
>>408
>>392-393サーバーのリプレースでどうするって話がもと
うちはサーバを仮想化したから仮想環境を新しいサーバに移して、起動させるだけなんだけど
OSのアップデートとSQLServerのアップデートを実施したって話

>>412
作業ログって人の作業記録だとすると、理解できる人材が必要
手順だけを詳細に書いておいても、バージョンアップ等で手順が変わると役に立たなくなる
理解できて対応できる人が必要
仮想サーバの移行は単純だし、単純なOSやSQLServerのアップデートはウィザードに従うだけでできるから、これで良いかなと思ってるところ
0414NAME IS NULL
垢版 |
2020/09/07(月) 19:55:52.08ID:VUeEFudZ
SQL Serverのバックアップの基本は論理バックアップなのかと眺めているけど、本当にそうだとすると大量データには不向きなRDBMSだな。
0415NAME IS NULL
垢版 |
2020/09/07(月) 21:34:28.56ID:???
もしかして設定変更などguiで頑張ってるのか
0416NAME IS NULL
垢版 |
2020/09/07(月) 22:07:50.44ID:???
sqlserver を仮想化するって遅くなるだけでメリットが感じられないな。
テストの時スナップショットからすぐ戻せるとか
そんな事くらいしかメリットない。
サーバー移行も大きい仮想ドライブファイルコピーするのに休日返上で一気にやらないといけないとか大変そう。
バックアップなら完全バックアップ前日とってコピーして
おいて当日差分バックアップとってそれだけコピーすればいいから早くすむと思う
0417NAME IS NULL
垢版 |
2020/09/07(月) 22:42:49.93ID:???
仮想化知らんのかw
0418NAME IS NULL
垢版 |
2020/09/08(火) 12:25:02.82ID:???
>>413
それは移行計画とか手順書を作る前の検証段階レベルで起こる話だから問題ないでしょ?教育にもなる

ぶっつけ本番前提ならそれはそもそもとして体制に問題ありって事だよ
0419NAME IS NULL
垢版 |
2020/09/08(火) 14:39:08.95ID:HzvFsyRh
イメージを戻すだけで済むようなシステムならもともと苦労なんかしないだろうに。
0420NAME IS NULL
垢版 |
2020/09/13(日) 11:59:17.42ID:???
ちょっと困ってるので、詳しそうな人が多そうなここで質問

簡潔に言うとWindows10&WindowsServer2019+VS2019(ASP.NET,VB.NET)+SQLServer2019Expressでwindows認証接続してデバッグモードでプログラムは動作する。
それを発行してIISで参照するとDB接続に失敗する。
なんでだろう?
0421NAME IS NULL
垢版 |
2020/09/13(日) 12:27:14.55ID:???
エラーメッセージを見ろよw
0422NAME IS NULL
垢版 |
2020/09/13(日) 20:27:20.94ID:???
たぶんあのモジュールの設定がアレなんだと思うよ?
0423NAME IS NULL
垢版 |
2020/09/14(月) 01:00:26.63ID:ix9Okpm5
>>420
どうして失敗しているのがわかったのか?
ありのままを知らせてくれないとわからないよ。
0424NAME IS NULL
垢版 |
2020/09/14(月) 02:12:24.66ID:???
デバッグモードのときのあWebサーバは何なんだよ?
それはどのアカウントで動かしてるんだよ?

多分、IISのアカウントがWindows認証で認証できてないんだろ
今のIISのアプリケーションプールとか仮想アカウントで動いてるし
そのへんの仕組みちゃんと勉強する気がないならSQL Server認証でやっとけ
0425NAME IS NULL
垢版 |
2020/09/14(月) 02:39:06.98ID:ix9Okpm5
IISすらろくに理解してないのがわかる質問だから、相手にしなくていいと思う。
0426NAME IS NULL
垢版 |
2020/09/21(月) 16:11:02.91ID:gsw4bqcy
MacのARM化に伴って、Mac+Docker+SQLServerみたいな組み合わせはできなくなりそうなんだけどさ
SQLServerってARM Linuxへの対応は計画にないもんなの?
0427NAME IS NULL
垢版 |
2020/09/22(火) 16:11:00.11ID:???
ここで聞かれても
0428NAME IS NULL
垢版 |
2020/09/22(火) 17:03:29.93ID:???
ARM版WindowsのWOWを流用したら可能性はある
0429NAME IS NULL
垢版 |
2020/09/22(火) 19:04:35.11ID:jrCQ1y5r
macは需要のなさから、いろんなものが対応していない。
0430NAME IS NULL
垢版 |
2020/09/23(水) 08:29:01.06ID:???
シーケンスの現在値がなぜか10個ほど巻き戻っていたせいで重複した番号が使われてレコード追加しようとしたときに一意性エラーでシステムが落ちてた
同じシステムで使われる他のシーケンスオブジェクトは問題なかったのに1個だけなぜか巻き戻ってた
なんか似たようなことなったひといない?
教えてエロいひと
0431NAME IS NULL
垢版 |
2020/09/23(水) 15:13:36.74ID:jpxv++AE
SSMSから社外ドメインのサーバーのSSISに接続しようとすると、WINDOWS認証はできるのですが、SQL SERVER認証ができないためにログインできません。

これは仕様でしょうか?
0432NAME IS NULL
垢版 |
2020/09/23(水) 16:23:58.55ID:???
ポートが通ってないんだろ
0433NAME IS NULL
垢版 |
2020/09/24(木) 00:28:53.49ID:???
>>432
ありがとうございます。

SSMSのログイン画面でSSISに接続しようとすると、サーバー名を入れる前から、WINDOWS接続しか選べないのですが、これもポートですか?
データベースに接続する時には、WINDOWS接続とSQL SERVER接続が選べます。
0434NAME IS NULL
垢版 |
2020/09/24(木) 14:21:52.81ID:???
そもそもそのサーバーでSQL SERVER認証する設定になってるのか?
0435NAME IS NULL
垢版 |
2020/09/24(木) 19:22:22.67ID:???
>>434
混合モードになっていて、DB接続は普通にできます。
0436NAME IS NULL
垢版 |
2020/09/24(木) 20:54:34.93ID:???
仕様ってことでいいんじゃねぇの
知らんけど

DB接続できるならSSISDB使えば?
0437NAME IS NULL
垢版 |
2020/09/27(日) 21:52:54.46ID:???
Express版をいじってみてるんだけどさ
これ、データベースのホットバックアップをとった時って、バックアップ中に行われた更新はどうなっちゃうの?
自動的にリストアに必要なトランザクションログもバックアップに含まれたりするん?
0438NAME IS NULL
垢版 |
2020/09/27(日) 22:06:07.42ID:???
FULLバックアップならトランザクションログも含まれる
0439NAME IS NULL
垢版 |
2020/09/27(日) 23:02:38.40ID:???
ありがとう
さすが元々有料だったのものだけあるな
0440NAME IS NULL
垢版 |
2020/09/28(月) 01:27:27.69ID:???
いろいろいじってたらそうか、流石に無料版はトランザクションログのバックアップに制限があって、使いづらくしてあるわけか
0441NAME IS NULL
垢版 |
2020/09/28(月) 02:28:37.98ID:???
いやそんな制限ないだろ
バックアップまわりの制限って圧縮ぐらいじゃね

SQL Server触るの初めてなのか?まず復旧モデルってのを理解してるか?
0442NAME IS NULL
垢版 |
2020/09/28(月) 13:04:07.47ID:???
正直、復旧モデルがいまいち理解できてない
理解しようと公式のドキュメントをなぞってたんだけど、そもそもExpressだとSimpleってのしか選べなくて続けらんなかったぜ
0443NAME IS NULL
垢版 |
2020/09/28(月) 13:16:14.46ID:???
Simple(単純)ってのは、ログを保存、バックアップしない運用
Expressでも単純しか選べないってことはなかったと思うけどな
インストール後でも変えれるから試してみ
0444NAME IS NULL
垢版 |
2020/09/28(月) 16:00:50.71ID:???
せんきゅー!
デベロッパーに変えたら使えたぜ、これでドキュメントなぞりができるが・・・・使えるようになったときに本番で使う金はねえ
もし使うとしてもAzureの月700円のやつになっちゃいそう
0445NAME IS NULL
垢版 |
2020/09/29(火) 10:05:54.68ID:???
ExpressでSimpleしか選べなかったバージョンって何?
あとOSも何?
0446NAME IS NULL
垢版 |
2020/09/29(火) 13:59:55.80ID:???
ごめんなさい
リカバリーモデルを選択する画面を間違えていました
確かにExpressでも選択できました
0447NAME IS NULL
垢版 |
2020/10/15(木) 22:52:25.90ID:???
SQL Server2016インストール後、IPアドレス変更した場合
特にする事はないのですか?
0448NAME IS NULL
垢版 |
2020/10/24(土) 20:31:09.40ID:???
>>447
DBエンジンそのものは問題なく動くはず
0449NAME IS NULL
垢版 |
2020/11/02(月) 15:26:45.98ID:???
SQLサーバーインストールする時にデータベースエンジンにしかチェック入れていないのにクライアント接続ツールとかが自動的にインストールされる理由を教えてほしいです
0450NAME IS NULL
垢版 |
2020/11/02(月) 19:37:23.45ID:gbiAIS+S
いつものサーバー君ですか?
0452NAME IS NULL
垢版 |
2020/11/12(木) 23:39:34.81ID:???
スレを間違えてしまってこちらに誘導されてきました
SQL Server Developerエディションについて教えて下さい。
このエディションは開発用となっていますが、機能的にはスタンダードと同レベルで使えるのでしょうか?
また実稼働では使用不可とはおもいますが、ライセンス的にはどこでみわけてるのでしょうか?
使用していると定期的に確認メッセージが出たりするのでしょうか?
0453NAME IS NULL
垢版 |
2020/11/13(金) 17:00:45.94ID:???
機能的にはエンタープライズだったはず
ライセンスはたぶん確認とかないと思う
0454NAME IS NULL
垢版 |
2020/11/13(金) 19:00:35.80ID:???
テレメトリーで確認してます
0455NAME IS NULL
垢版 |
2020/11/14(土) 02:55:42.24ID:5WdagOao
>>452
商用ではない非運用ならいいというもの
エンタープライズという名前にしてしまうと、商用で使ってしまう可能性があるから、エディション名を分けたのだと思う。
0456NAME IS NULL
垢版 |
2020/11/16(月) 21:28:14.28ID:5VqfDNor
パッケージソフトをvpn環境でクラサバ運用し始めたのですがクライアントからだとメチャソフトの動作が遅いです。
見直すのはサーバーの性能?クライアントpcの性能?vpnの回線の速度?どこから見直したほうが良いでしょうか?
0457NAME IS NULL
垢版 |
2020/11/18(水) 08:54:02.70ID:???
SQL server2019を買って2017にダウングレードしようと考えてるんですが、やり方を調べると2017の媒体を自前で用意する必要があるのは分かったのですが2017のプロダクトキーも自前で準備するのでしょうか?

2017で持ってるプロダクトキーは他サーバーで稼働中のものしかなく、どちらもバンドル版です。
0458NAME IS NULL
垢版 |
2020/11/19(木) 15:32:39.73ID:???
バンドル版のライセンス関係はその販売元に聞けってのが原則
0459NAME IS NULL
垢版 |
2020/11/19(木) 15:58:34.37ID:???
「他サーバーで稼働中のライセンスを流用できませんか?」 ってバンドル版の販売元に聞くの?

アホか
0460NAME IS NULL
垢版 |
2020/11/20(金) 10:24:55.66ID:???
メディアとプロダクトキーを流用していいか聞くんだが?
ライセンスは2019買う前提だ
バンドル版じゃなければそれで行けるはずだが、バンドル版はいろんな条件が追加されてる可能性があるからな
0461NAME IS NULL
垢版 |
2020/11/20(金) 12:58:39.69ID:???
>>460
他のライセンスのプロダクトキーを流用していいわけないだろ
0462NAME IS NULL
垢版 |
2020/11/20(金) 23:54:47.82ID:???
ダウングレード権でそのプロダクト使う権利あればプロダクトキーも使って良いはずだが
0464NAME IS NULL
垢版 |
2020/11/30(月) 14:27:49.98ID:???
今さらなんだけどSQL Server Native Clientが推奨されていない事に気がつきました
MSOLEDBSQLへのプログラム書き換え結構面倒ですね(VB.NET)
(コネクション、コマンド、アダプター、データリーダーの名前が変わる)
SQL Server 2005から開発してて現状2017です

SQL Server Native Clientでは新機能サポートしないと書いてましたが
2017からのFORMATMESSAGE 関数は使えてます
CommandTextにT-SQL自分で書くやり方は影響しないのかな?
0465NAME IS NULL
垢版 |
2020/12/01(火) 05:14:39.15ID:???
>>464
接続文字列書き換えるだけじゃないのか
新旧の名前教えてくれ
0466NAME IS NULL
垢版 |
2020/12/01(火) 08:37:58.29ID:???
SQL Native Clientの場合
System.Data.SqlClient 名前空間
"Data Source=192.0.1.1;User ID=user;Password=pwd;Initial Catalog=db1" 接続文字列
Using a1 As New SqlConnection(ConnectionString)
,a2 As SqlCommand = a1.CreateCommand
,a3 As New SqlDataAdapter(a2)

MSOLEDBSQLの場合
System.Data.OleDb 名前空間
"Provider=MSOLEDBSQL;Data Source=192.0.1.1;User ID=user;Password=pwd;Initial Catalog=db1"
Using a1 As New OleDbConnection(ConnectionString)
,a2 As OleDbCommand = a1.CreateCommand
,a3 As New OleDbDataAdapter(a2)

SQLCLIENTとOLEDBではコネクション、コマンド、アダプター、データリーダーの名前が変わっています
置換すればいいだけなんだけど引数や戻り値にこれらがなってると少し面倒かも

OLEDBで接続文字列にSQLNCLIで使ってた人?ならMSOLEDBSQLに
変えるだけ済むけど
0467NAME IS NULL
垢版 |
2020/12/02(水) 09:50:03.46ID:???
それはADO.NETの初期からあるOLEDB汎用のドライバで、MSOLEDBSQL用ではないわけだが

System.Data.SqlClient から Microsoft.Data.SqlClient にしろってことらしいが
名前空間の変更ぐらいで基本的なクラス名なんかは変更されてないと思うが
細かい動作なんかは未検証だからしらん
0468NAME IS NULL
垢版 |
2020/12/02(水) 11:40:42.41ID:???
MSOLEDBSQL
ttps://docs.microsoft.com/ja-jp/sql/connect/oledb/download-oledb-driver-for-sql-server?view=sql-server-ver15
専用のドライバがあります

ttps://docs.microsoft.com/ja-jp/sql/connect/oledb/oledb-driver-for-sql-server?view=sql-server-ver15
ここではOLEDBでMSOLEDBSQLを推奨
Microsoft.Data.SqlClientには言及なし

Microsoft.Data.SqlClient
使ってみましたがクラスは変更なしでそのまま動きますね
Nugetで関係なさそうな物までいろいろひっついてくる
0469NAME IS NULL
垢版 |
2020/12/02(水) 18:20:54.26ID:???
純粋なOLEDBのドライバと、ADO.NETのライブラリと混ぜて話してしまってるな
0470NAME IS NULL
垢版 |
2020/12/03(木) 08:33:29.87ID:???
>>469
ありがとうございます
そもそも違いを意識してませんでした
OLEDBの最新がMSOLEDBSQL
ADO.NETの最新がMicrosoft.Data.SqlClient

現状System.Data.SqlClientで使用しているなら
Microsoft.Data.SqlClientにするのが無難かな
0471NAME IS NULL
垢版 |
2020/12/04(金) 19:30:39.77ID:???
Microsoft.Data.SqlClientで使えるようになった新機能って何があるんだろ
それが必要でなければSystem.Data.SqlClientのままで良いんじゃないか
0472NAME IS NULL
垢版 |
2020/12/07(月) 10:02:07.90ID:???
>>471
そうですね
テストだけで終わりにしときます
0473NAME IS NULL
垢版 |
2020/12/14(月) 16:31:07.70ID:???
GUIでユーザやデータベースのプロパティーを変えるには、Windows + SSMSが必須なのですか?
(Azure Data Studio、SQL Server Data ToolsなどではT-SQLになるのでしょうか?)
公式のドキュメントを見ながら学習しているのですが、どのような項目があるかすら身についていない段階からCUIを使うのは辛いです・・・・
0474NAME IS NULL
垢版 |
2020/12/15(火) 08:09:01.23ID:???
>>473
必須ではないけど勉強するならSSMSであれこれいじってみるのがいいと思うけど
自分は本番環境でもSSMS使いますが
ちっこいテーブルいじる時はアクセス2000
0475NAME IS NULL
垢版 |
2020/12/16(水) 01:48:16.57ID:???
>>474
アクセス2000が使えるSQLServerて古い奴じゃない?
リンクテーブルなら今でも使えるのかな

ADPが使えた時は重宝した
0476NAME IS NULL
垢版 |
2020/12/16(水) 08:28:20.52ID:???
>>475
SQL Server2019とaccess2016だとadp使えないですね
SQL Server2019とaccess2000ならadpル使えますよ(Windows10)

SSMS、テーブルとかストアドを縦にずらっと出てくるだけじゃなくて
業務ごとにグループ分けできると便利なんだけどな
0477NAME IS NULL
垢版 |
2020/12/16(水) 20:31:08.36ID:???
>>476
SQLServer2008とAccess2010の組み合わせが編集できる最後の組み合わせだよね
Accessの方が新しいバージョンでないとスキーマの編集はできなかった
Access2013からadp未対応になったからね
2008R2はどうだったかなAccess2010で対応してたかもしれない
Access2000が対応してたのはSQLServer7までだったかな
0478NAME IS NULL
垢版 |
2021/01/31(日) 00:52:41.31ID:???
OLEDB接続では接続させない
ODBC接続なら接続できる

なんてを設定できますか?
0479NAME IS NULL
垢版 |
2021/02/02(火) 00:19:09.01ID:YPcBm8xr
Oracle Master取得に向けた書籍が結構出ているようですが、SQLServerの資格向けの似たような本はないのですか?
資格自体は興味がないのですが、ある程度網羅的に知識をつけたいんです
0480NAME IS NULL
垢版 |
2021/02/05(金) 21:42:33.86ID:???
そもそもSQL-Serverの資格ってもうないんじゃなかったっけ?
0481NAME IS NULL
垢版 |
2021/02/06(土) 15:47:46.05ID:???
1月末でSQL Serverに特化したMS資格はなくなったから
資格向けの本は本屋にはないだろうね

資格本じゃなく普通の入門書は大きめの本屋に行けばそれなりにあるはず
しっかり学びたければ「Microsoft SQL Server 2012 Internals」がおすすめ
0483NAME IS NULL
垢版 |
2021/02/06(土) 19:00:00.81ID:???
SQL Serverでやってみよう、はよく使った
0485NAME IS NULL
垢版 |
2021/02/16(火) 17:08:42.18ID:???
SSMS v15.0.18369.0で2つ目のクエリウィンドウを掴んで1つ目の下とかにドッキングさせると落ちるんだけど自分のとこだけ?
ここ2、3日で急に発生した
なおOSはWindows 10 20H2 19042.804
0486NAME IS NULL
垢版 |
2021/03/16(火) 15:18:58.11ID:Bn/p8j1N
SSMSで質問です。
KeyであるIDが1から順に降られているテーブルで
ID='201'であるレコードを編集したい場合はどうすればいいのでしょうか?

上位200行に入らないレコードの編集方法を教えてください
0487NAME IS NULL
垢版 |
2021/03/16(火) 16:56:41.51ID:???
あれは簡易的機能だろう
自分はupdate文作って更新してる
0488NAME IS NULL
垢版 |
2021/03/16(火) 19:09:50.37ID:???
>>486
URLが何故か貼れないけど、検索したらすぐ出てくる
0489NAME IS NULL
垢版 |
2021/03/18(木) 03:59:09.61ID:???
主キーでの1件UPDATEやなんのキーもない一時テーブルへの1件INSERTがおそくなるのって何が考えられるかな
プロシージャがたまに遅いときがあるってんで動的管理ビューのdm_exec_query_statsとprocedure_statsとるようにしたんだけど、
遅いときは決まってINSERTやUPDATEが遅くなってる
logical_writesやlogical_reads、physical_readsの値は特に変わらない
プロシージャ内のSELECTは速度安定してる
waitsとかもとってみるしかないかな
0490NAME IS NULL
垢版 |
2021/03/18(木) 10:01:17.95ID:???
>>488
出来ました。
ありがとうございました。
0492489
垢版 |
2021/03/18(木) 14:20:31.16ID:???
>>491
ありがとうございます、page splitも見てみる
UPDATEしてるテーブルがインデックス14個もある...適正に作られてるんだろうか
それが原因とした場合、とりあえずはインデックスの断片化の解消、FILL Factorの値の見直しかな

splitは一時テーブルのINSERTも可能性あるのかな
#付きのテーブルで、プロシージャの最初にCreateしてるんだけど主キーもインデックスもなにもなくて
while内でループで一件ずつInsertしてるんだが、IF文で条件満たせばtruncateしてて、最高でも99件しか貯まらないようなテーブルなんだ
Updateの方でsplit多発してる場合、その影響を受けたりするものなのかな
0493NAME IS NULL
垢版 |
2021/03/18(木) 15:29:09.05ID:???
>>492
一時テーブルでもpage splitの可能性はあるが
キーのないHeapならpage splitは発生しない

複数ユーザーがそのストアドを実行してる環境で
page splitが頻発してるならinsertのパフォーマンスもその影響を受ける可能性はある
でも一時テーブルとUPDATEで使ってるテーブルのストレージが違えば影響ないんじゃないかな
少なくとも1ユーザーがそのストアドを実行してるだけなら影響は受けない

INSERTのほうは一時テーブルで使ってるtemp dbへのI/Oが遅くなる原因が
何かないかを考えたほうがいいかも
あとはmemory optimizedにしてみるとか
0494NAME IS NULL
垢版 |
2021/03/18(木) 17:57:27.50ID:???
通常のINSERTと遅いINSERTでどの程度の差があるのか?
レコード長は? 1ページに何件入る?
固定長か可変長か?
TRUNCATE直後のINSERTが遅い可能性は?
0495489
垢版 |
2021/03/18(木) 21:38:23.03ID:???
>>493
なるほど
自分が関わってないシステムなんでその辺の情報も入手しつつ調べてみる

>>494
レコード長は長くない
全17カラムでBIGINTが1個、INTが12こ、TINYINTが3個、固定長文字列のCHAR3が1個

INSERTどれくらい遅いかだけど、問題ないとされてる日は平均70〜90マイクロ秒
遅いとされてるときは平均200マイクロ秒〜で、悪いと700、2000超えのときも
この値はプロシージャ実行前後でdm_exec_query_stats抜いて
execution_countとtotal_worker_timeの差を取って平均だした(erapse_timeも似たようなもの)
プロシージャ1回実行で10万〜30万件くらい処理してて、一番ひどい平均2000マイクロ秒越えのときは約10万回で212秒になってた
TRUNCATE直後が遅いとかそこまでは調査できてないです
0496NAME IS NULL
垢版 |
2021/03/18(木) 22:40:07.73ID:???
MSSQLのtruncateの挙動とマッチしていない…のかも

・truncateすると、レコードにtruncateのマークがされるだけで
 ブロック中で生きてるレコードが無くてもブロックは開放されない
・空きブロックが無く、新たにブロックが必要になったときに、
 その時にtruncateのマークがされたレコードを調査して、
 ブロックが未使用だと判明したらそのブロックを再利用する
0497NAME IS NULL
垢版 |
2021/03/18(木) 22:57:09.33ID:???
んーそれだとtempdb周りをまず疑うかな

この辺に該当しないか調べてみては?
https://www.sqlskills.com/blogs/paul/the-accidental-dba-day-27-of-30-troubleshooting-tempdb-contention/
https://www.red-gate.com/simple-talk/sql/sql-development/heaps-in-sql-server-part-4-pfs-contention/

でもトランザクションログ周りの可能性とかもあるし
遅くなる時に一緒に発生してる何かをどうにかして掴まないと難しいね
0498NAME IS NULL
垢版 |
2021/03/18(木) 23:26:54.65ID:???
ディスクが死にかけてるとか、ネットワークが不安定とかの可能性は?
つか単にロックウェイトじゃないだろうな
トランザクションと分離レベルどうなってる?
0499NAME IS NULL
垢版 |
2021/03/19(金) 00:25:42.14ID:???
localのtemp tableみたいなのでロックウェイトはないんじゃないか?
0500489
垢版 |
2021/03/19(金) 00:25:58.90ID:???
>>496
プロシージャ内にはテーブル変数にINSERTしてる箇所もあって、ここはINSERT回数は半分くらいなんだけど特に遅くなってないんだ
テーブル変数のほうはTruncateしてないんだけどそこ...かなあ

>>497
今日OSとSQL Serverのパフォーマンスカウンタ取ろうって話になった
教えてくれたところも参考にしつつ調べてみる
遅くなるのが月1〜2回くらいだそうで、今月中にしかけて再発待ちかな

>>498
ハードは異常はないらしい
ロック周りは他になにも処理が動いてなくても遅いときがあるってんで調べてないがおさえてみる
0501NAME IS NULL
垢版 |
2021/03/19(金) 02:31:40.64ID:???
テスト環境では再現しない?

該当のストアドの単独実行か複数の並列実行で再現したら絞りやすい
再現しなければしないで本番環境特有の設定か他の処理の影響を受けてることが分かるので半歩前進
再現しない環境と本番環境で各種測定結果の比較もできる

月1~2回しか発生しないならそのタイミングで他に動いてた処理を把握できれば調査進みそう
レスを投稿する


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