0625NAME IS NULL2022/03/16(水) 06:19:16.79ID:??? 大したデータ量でもないのに「クエリの実行中にMemoryGrantを25秒間待機する必要がありました」との警告が出て処理が遅くなるんですが対処法はないでしょうか。 また値が1, (2 or 3), (4 or 5)でそれぞれ集計したいのですがどのようなSQLにすればいいのでしょうか
0626NAME IS NULL2022/03/16(水) 16:26:28.69ID:???>>625 >大したデータ量でもないのに「クエリの実行中にMemoryGrantを25秒間待機する必要がありました」との警告が出て処理が遅くなるんですが対処法はないでしょうか。 テーブルとインデックスの構成、クエリ内容、実行プランを確認して原因を突き止めてください 原因が分かったらテーブルやインデックスを変更したりクエリを変更して対処してください
>また値が1, (2 or 3), (4 or 5)でそれぞれ集計したいのですがどのようなSQLにすればいいのでしょうか 現在のテーブル構造と欲しい結果のイメージを提示してください 0627NAME IS NULL2022/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 NULL2022/03/19(土) 18:54:37.22ID:??? 開発サーバにいれるSQLServerのエディションをDeveloperにするの問題ないでしょうか 利用目的はシステム改修の開発単体テストから総合テスト、受入テスト あとは本番サーバで不具合でたときの検証目的で使用するのは数名〜Max20人くらい バージョンアップの準備してて、経緯不明なんですが開発サーバが今Enterprise入ってて変えて問題ないなら変えたい 本番はEnterpriseです 0629NAME IS NULL2022/03/20(日) 13:06:14.65ID:???>>625 MemoryGrantで待機ってメモリが足りてない ・SQLServer以外のプロセスがメモリ食ってSQLServerのメモリが小さくなってる可能性 →SQLServerの最大メモリ最小メモリの設定、SQLServerのサービスアカウントにメモリのページロックの特権がついてるか ・メモリめっちゃ使うクエリが同タイミングで動いてる可能性 →パフォーマンスモニタのBufferManagerカウンターで急激な変動がないか確認、動的管理ビューでその時間帯に動いてたクエリででかいのを調べる ・そのクエリがめっちゃメモリ食う →これは626
昔使うメモリの計算に不具合あった覚えあるけど、あれは2008か2012くらいのSPで解消されてたような 0630NAME IS NULL2022/03/25(金) 16:26:14.25ID:??? Express版は10GBまでは使用できるようですが、 10GBを超えそうだという警告などは設定できるのでしょうか? 定期的に使用領域を確認していないと、ある日突然なにもできなくなってしまうのでしょうか? 0631NAME IS NULL2022/03/26(土) 05:22:50.26ID:???>>630 このページにあるクエリを実行するスクリプトを作成し、タスクスケジューラで定期実行してみてはどうでしょうか クエリの結果をもとに、自分で決めたしきいち値超えたら警告メールを送るような処理も加えると監視をほぼ自動化できそうですね 0632NAME IS NULL2022/03/26(土) 05:24:39.02ID:???>>630 ページの情報が抜けてた。。。 「データベースのデータとログの領域情報を表示する」でググってみてください 0633NAME IS NULL2022/03/27(日) 04:43:57.62ID:g/u0dazF ディスク容量を常に気にしていない運用という点が突っ込みどころなんだろうな 0634NAME IS NULL2022/03/27(日) 09:21:36.36ID:??? 今どき10GBの容量を気にする運用って… 0635NAME IS NULL2022/03/27(日) 12:27:12.36ID:???>>631-632 ありがとうございます クエリで問い合わせられるのなら、いろいろできそうです 0636NAME IS NULL2022/03/27(日) 14:58:09.23ID:???>>633 ディスク容量を常に気にしたところで役に立たないという点が突っ込みどころなんだろうなww 0637NAME IS NULL2022/03/27(日) 21:51:16.43ID:g/u0dazF>>636 どこにファイルが作られているのかを気にしてない時点でおかしんだけどな。 0638NAME IS NULL2022/03/27(日) 22:22:31.32ID:??? > どこにファイルが作られているのかを気にしてない どこからそんな妄想が?w 0639NAME IS NULL2022/03/27(日) 22:26:31.76ID:???>>637 知らんのなら大人しくしとけよw お前のオツムのほうがよっぽどおかしいぞ 0640NAME IS NULL2022/03/28(月) 20:26:23.25ID:??? 今、自分1人で使ってるスタンドアロンのACCESS DBがクソ重くて激不安定なので 同じ事をSQL serverでやろうとしてるんだけど 1人でスタンドアロン使用の場合、Developer版を 「永遠に開発中」という設定にしとけばライセンス違反にならない? 0641NAME IS NULL2022/03/28(月) 23:45:33.37ID:YrCsxNrI>>640 Expressを使わずにDeveloperを使わないといけない理由は? 0642NAME IS NULL2022/03/29(火) 01:49:02.52ID:??? ちんちんシュッ!シュッ!シュッ! 0643NAME IS NULL2022/03/29(火) 02:24:28.51ID:???>>640 M$に聞け 0644NAME IS NULL2022/03/29(火) 08:14:33.09ID:???>>641 別にexpressでもいいんだけど 単にdevelopは制限が全くないのでこっち使おっかな、程度の事です 0645NAME IS NULL2022/03/29(火) 08:20:42.50ID:??? そんなやつがライセンス気にしてるのかw 0646NAME IS NULL2022/03/29(火) 11:33:14.27ID:???>>640 明らかにライセンス違反 0647NAME IS NULL2022/03/29(火) 13:26:38.05ID:???>>640 止めとけ 素直にMySQLかPostgreSQL使え 0648NAME IS NULL2022/03/29(火) 23:39:12.46ID:BT3fAchA>>647 そんな理由で別製品にするなんて素人が言うことだろw 0649NAME IS NULL2022/03/30(水) 00:51:56.50ID:??? SSMSでストアドのテストドライバ生成機能ってありますか? ※Sqldeveloperみたいな感じの、っていう表現で伝わりますかね
あるいは皆さんの、ストアドの単体テストの楽な方法とかも何かtipsがあれば 0650NAME IS NULL2022/03/30(水) 01:29:25.29ID:??? Visual StudioのSQL Server Data Tools(SSDT) 0651NAME IS NULL2022/03/30(水) 02:36:50.14ID:Q0Wnmomb>>649 そもそもTransact-SQLをわかってますか? 0652NAME IS NULL2022/03/30(水) 09:01:40.57ID:??? いつものことながらID付きはとことん的外れだな 0653NAME IS NULL2022/04/02(土) 00:32:00.52ID:??? 接続文字列のData SourceとServerに違いはあるの? どちらもサーバーのインスタンス名かIPアドレスとポートの指定だと思ってるけど 0654NAME IS NULL2022/04/02(土) 03:40:35.60ID:??? SQLServerでServerといったら基本的にはSQLServerがインストールされているサーバーかサーバーとそのインスタンス名まで DataSourceとなるとSQLServer以外のDBMSやフラットファイルも含まれる 0655NAME IS NULL2022/04/02(土) 13:18:09.84ID:???>>654 ありがとうございます 0656NAME IS NULL2022/04/05(火) 17:10:51.74ID:??? 久々にSSMS2008を触ってて クエリショートカットのカスタマイズした機能が動かなくなってるんだけど 同じようなことしてる人いる?(COMMITとROLLBACK) https://dotup.org/uploda/dotup.org2767912.png0657NAME IS NULL2022/04/05(火) 18:16:10.44ID:???>>656 ごめん自己解決 間違ってF5押してたわ 0658NAME IS NULL2022/04/06(水) 22:53:45.80ID:2Dm57SjU F5キーでコミットとはおそろしい発想だな 0659NAME IS NULL2022/05/17(火) 09:25:02.74ID:??? tes 0660NAME IS NULL2022/05/19(木) 16:16:58.24ID:QTEsI/3c 教えて下さい。 ACCESS2019、SQL Server2012利用しています。
Accessの不具合っぽい 0663NAME IS NULL2022/05/25(水) 01:02:51.71ID:q0WabceL sql serverにアプリから接続しているクライアントPCって 利用状況モニターで確認できますが、過去の履歴ってどこから見れますか? 0664NAME IS NULL2022/05/25(水) 11:21:36.57ID:???>>663 利用状況モニターってたぶん動的管理ビューから情報とってるから、それの過去データ見たいならそれをとるように設定しないと データコレクションがそれなんだろうが自作でクエリ組んでSQLAgentで動かすほうがカスタマイズしやすいと思う あとは、どういう風にデータを見たいかだけど拡張イベントでログインログアウトとるとかも有りかな 0665NAME IS NULL2022/05/25(水) 16:42:31.89ID:??? どういうログがいるのかわからんが、監査ログで良いんじゃないか 0666NAME IS NULL2022/05/25(水) 23:54:39.54ID:??? 監査ログって拡張イベントを監査用にまとめただけでしょ 簡単にやれるぶん融通がきかない 項目とフィルタの設定の自由度ほしいなら拡張イベント一択 0667NAME IS NULL2022/11/15(火) 22:39:41.69ID:54ouQ1K1 sql sever 2019で、ファンクションを作成しています。 その処理の中で、番号を管理する列から最大値を取得して1を加えたものを新しい番号として同じテーブルにインサートしようとしています。 その処理の間に、他からこのファンクションを呼び出されて割り込まれることを防止するため、ファンクションが完了するまでテーブルロック(排他ロック)をかけたいのですが、どのような記述が必要でしょうか。
begin transaction commit のような感じで関係するステートメントをかこえたらよいのですが。 0668NAME IS NULL2022/11/15(火) 22:53:59.24ID:???>>667 自作せずにSEQUENCEをNO CACHEで使えばいいよ 0669NAME IS NULL2022/11/15(火) 23:38:08.24ID:uZbfP42z>>668 早速のレスありがとうございます。
連番はSQL SEVERに自動で振ってもらおうと思います。 そして、INSERTとOUTPUT inserted.*を使って、 その新しい番号を得たいと思います。 0670NAME IS NULL2022/11/15(火) 23:42:08.86ID:uZbfP42z>>669 訂正します INSERTにOUTPUT inserted.*を組み合わせて 0671NAME IS NULL2022/11/17(木) 12:06:05.40ID:??? SQL Server 2022 is now generally available https://cloudblogs.microsoft.com/sqlserver/2022/11/16/sql-server-2022-is-now-generally-available/0672NAME IS NULL2022/11/17(木) 19:21:02.25ID:???>>667 まず分離レベルってのを理解しような 0673NAME IS NULL2022/11/17(木) 23:47:32.26ID:???>>671 エクスプレス版を取りあえずダウンロードだけしといたw SSMSが同じだからなあ…どうなんだろ 0674NAME IS NULL2022/11/24(木) 11:28:43.27ID:DKlnX/+1 質問です。
マイクロソフトそのものが諦めているのに、SQL Serverに期待しすぎの人間がこのスレにいるのは、日本マイクロソフトの周知不足なんだろうな。 0788NAME IS NULL2023/06/17(土) 08:44:00.04ID:5Ljw3AHe SQL Serverは同じテーブルに複数のセッションから同時にSELECT文を発行すると、極端に遅くなることがある。
さすがにこう説明すれば、作りに問題があることがわかるだろ? 0789NAME IS NULL2023/06/17(土) 11:04:09.78ID:??? だから、どこが崩壊してるんだよ。 自分の台詞だろ。まずそこを説明しろよ。 0790NAME IS NULL2023/06/17(土) 11:04:34.79ID:??? あ、失礼。 x 説明 o 証明 0791NAME IS NULL2023/06/18(日) 23:16:22.92ID:??? 何の根拠もなくここまで文句言えるとは SQL Serverに親でも殺されたのか
期待してるどうこうではなくて、正しく理解して使いたいだけで 正しいかどうかもよくわからん情報を垂れ流されても困るんだがな 0792NAME IS NULL2023/06/19(月) 19:27:17.18ID:4/v87WeP 共有ロックの意味が違うぞ 0793NAME IS NULL2023/06/24(土) 16:50:28.70ID:kF0ecW7R 3行めから6行目までのデータを抽出するときってどうやって書いたらいいですか? 0794NAME IS NULL2023/06/24(土) 16:53:00.13ID:kF0ecW7R>>793 SELECT * FROM テーブル名 LIMIT 4 OFFSET 0795NAME IS NULL2023/06/24(土) 16:53:55.90ID:kF0ecW7R>>794 OFFSET 6; とするとエラーが出ました 0796NAME IS NULL2023/06/24(土) 19:51:58.99ID:??? この辺りのこと? ttps://sql-oracle.com/sqlserver/?p=857 0797NAME IS NULL2023/06/24(土) 22:11:08.28ID:kF0ecW7R>>796 すいません。 これです 調べきれてなかったです。 ありがとうございます。 0798NAME IS NULL2023/06/25(日) 09:25:22.34ID:ABQ2v09G 2行目の5列目のみを抽出したいときってどうすればできますか? SELECT 5列目の列名 FROM テーブル名 まではわかったのですが。。。 0799NAME IS NULL2023/06/25(日) 11:29:58.29ID:??? 796 の応用でできるでしょうに。 0800NAME IS NULL2023/06/25(日) 11:47:11.55ID:ABQ2v09G>>799 同じように入力してみます。 すいません。 0801NAME IS NULL2023/06/27(火) 17:05:56.20ID:??? select s from テーブル名 s where s.email = $1;
この s って何でしょうか? AS句を省略してる的な感じなのでしょうか? 0802NAME IS NULL2023/06/27(火) 17:33:51.50ID:??? そうだよ テーブル名のエイリアス 0803NAME IS NULL2023/06/27(火) 18:30:54.86ID:???>>802 合ってたんですね。 ありがとうございます。 ググるにも何て調べたら良いかわからず困っていました。 0804NAME IS NULL2023/06/27(火) 19:16:12.82ID:XSnmrLrK 同じテーブル同士をjoinする意味ってなに? 0805NAME IS NULL2023/06/27(火) 19:16:57.47ID:XSnmrLrK ですか? 同じテーブルを隣同士に繋げても意味ない気がして。。 0806NAME IS NULL2023/06/27(火) 19:27:51.68ID:??? 同じテーブルでも行ごとに中身がちがうんだから 違う行をつなげる意味はあるだろう 0807NAME IS NULL2023/06/27(火) 19:55:39.96ID:XSnmrLrK 行を消せたりするってこと? 0808NAME IS NULL2023/06/27(火) 21:58:44.24ID:XSnmrLrK LEFT OUTERJOINの説明で、結合した時に余計なデータを取ってくるとノイズになるって説明見たんですけど、(ノイズ)ってなんの意味ですか? NULLばっかりになるってことですか? 0809NAME IS NULL2023/07/14(金) 20:40:09.51ID:???>>808 行数もそうだがむしろ select *fromなんて指示したらどえらい列になるってことでは 0810NAME IS NULL2023/07/15(土) 12:24:05.87ID:ZDu5V+2v ? 0811NAME IS NULL2023/07/15(土) 13:28:07.72ID:??? 不要な列のデータ=ノイズって解釈なのだろうとエスパー。 0812NAME IS NULL2023/07/15(土) 16:37:15.54ID:??? たぶんそういう意味だろうね (特に右テーブルの)不要な列を取ってくるなってことを言いたかったんだろう 0813NAME IS NULL2023/07/15(土) 22:00:38.83ID:aJ3C4xJo>>812 左右が逆 0814NAME IS NULL2023/07/15(土) 22:04:46.99ID:aJ3C4xJo>>812 難解な表現だな。 0815NAME IS NULL2023/07/15(土) 22:05:30.45ID:aJ3C4xJo>>809 列指定にアスタリスクを使うことはあまりない 0816NAME IS NULL2023/08/07(月) 00:03:36.76ID:KYaloyhj Developer Editionのライセンス規約数年前に変わったはずなのに、未だに開発者しか使えないと 大手ベンダですら勘違いしているのはマイクロソフトの宣伝周知足りないよな こっちは損しないからどうでもいいけど、無駄な金払う顧客が可哀想・・・ 0817NAME IS NULL2023/08/08(火) 01:33:23.95ID:??? 昔もいまも開発用途にしか使えないと思うんだが