質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

0回答

1035閲覧

【SQLSERVER】結合数の多いクエリのパフォーマンス改善

退会済みユーザー

退会済みユーザー

総合スコア0

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2021/10/22 15:13

編集2021/10/30 07:03

前提・実現したいこと

以下SQLのLEFTJOINしている箇所を見直したいです。
良い書き方があればご教授いただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2021/10/22 23:40

「処理速度遅延の原因の1つと思っています」 根拠は? せめて実行プランがどうなっているのかぐらい提示しよう。
sazi

2021/10/23 00:57

チューニングには緻密さが必要です。 インデックスはもとより、SQLでのwhere条件、結合条件だけでなくorder byやselect項目も関係しますので、質問にあたり実名を避けるのは良いのですが、適当に割愛したりすると意味がありません。 チューニングに対して有用なアドバイスを受ける為には、SQL+実行計画+テーブル定義の情報を提示する必要があります。
退会済みユーザー

退会済みユーザー

2021/10/23 07:54

gentaro様 お返事頂きありがとうございます。 ご指摘の通り、根拠はありません。 実行計画を取得し、提示するようにいたします。 sazi様 お返事頂きありがとうございます。 ご指摘の通りです。わざわざご教授頂きありがとうございました。 まずは、省略していたSQLを、省略せずにすべて記載させていただきました。
sazi

2021/10/23 08:49 編集

根本原因はD_Kinmuhyoが正規化されていない事のようですが、テーブルのデザインの変更は出来ないのですか?
退会済みユーザー

退会済みユーザー

2021/10/23 09:40

sazi様 ご確認頂きありがとうございます。 テーブルデザインの変更は出来ません。 テーブル設計は現状のまま、改善出来ないか検討しております。
sazi

2021/10/23 10:09 編集

そうですか。では後は実行計画とテーブル定義(インデックス含む)ですね。 尚、追記する際は、以下の様に```で括ってください。 ``` (SQL) ```
退会済みユーザー

退会済みユーザー

2021/10/25 04:01

まずは、以下を本文に記載しました。 ・「XXXX_TBL」のテーブルレイアウト ・上記SQL実行時の実行計画 「D_Kinmuhyo」についてはテーブル定義書が存在しないため、確認中です。 また、このテーブルは上位システムのテーブルらしく、定義の変更は出来ないそうです。 満足に情報の提供すら出来ておらず、大変申し訳ございません。 また「```」を使用すると、画像が張れなかったので、 線で区切らせて頂きました。
sazi

2021/10/25 04:07

別に定義書でなくてもDBツールなどでDDL文を取得して追記すれば良いかと思います。 実行計画も画像よりはテキストの方が見やすいかと思います。 SQL Server Management Studio の知っておいたほうが良い機能について挙げてみる - その3 - ( 実行プランのテキスト表示 ) https://ryuchan.hatenablog.com/entry/2013/09/27/215314
sazi

2021/10/25 04:10

それから、ストアド全体の実行計画ではなく、問題個所のSQLに対しての実行計画にして下さい。 ※結果的に抽出されない条件での実行計画は無意味ですので、コストが掛かっているものにして下さい。
sazi

2021/10/25 04:13

> このテーブルは上位システムのテーブルらしく、定義の変更は出来ないそうです。 因みに、デザイン変更は出来なくても、インデックスの追加は可能なのですよね? インデックスの変更が出来ないとしたら、一時テーブル作成して対応する等が必要になりますが、それも対象のデータ量が大きすぎる場合は、相殺されて意味が無い事になります。
sazi

2021/10/25 04:17 編集

「上位システムのテーブル」なら正規化されていない事に対応するためのアクセスパターンなどが提示されたりしていないでしょうか。 「上位」ではなくて他システムという事ならそういった情報の提示はないでしょうけど。
退会済みユーザー

退会済みユーザー

2021/10/25 06:15

>別に定義書でなくてもDBツールなどでDDL文を取得して追記すれば良いかと思います。 >それから、ストアド全体の実行計画ではなく、問題個所のSQLに対しての実行計画にして下さい。 >※結果的に抽出されない条件での実行計画は無意味ですので、コストが掛かっているものにして下さい。 ご教授頂きありがとうございます。 上記の通り対応させて頂きましたので、ご確認頂けますでしょうか。 >因みに、デザイン変更は出来なくても、インデックスの追加は可能なのですよね? →依頼することは出来ますが、恐らく難しいです。 >インデックスの変更が出来ないとしたら、一時テーブル作成して対応する等が必要になりますが、それも対象のデータ量が大きすぎる場合は、相殺されて意味が無い事になります。 →「D_Kinmuhyo」には現時点で92,000レコード存在します。  1年あたり、3~4万件レコードが作成されるテーブルです。  また、ずっとデータを蓄積するため、データ量は増え続けます。 >「上位システムのテーブル」なら正規化されていない事に対応するためのアクセスパターンなどが提示されたりしていないでしょうか。 >「上位」ではなくて他システムという事ならそういった情報の提示はないでしょうけど。 申し訳ございません、他システムという言い方の方が正しいです。 その様な情報の提供はございません。
sazi

2021/10/25 06:36 編集

テキストを取得するようにお願いしましたのに、何故画像なのでしょうか。 D_KinmuhyoはViewですね。 View内で使用しているテーブルを直接使用すれば、効率は上がるのじゃないでしょうか。 細かいアドバイスを求めるなら、それらのテーブルの定義も追記した方が良いですね。 ※内容は解析になるので、そこまでの回答があるかは期待しない方が良いと思います。
退会済みユーザー

退会済みユーザー

2021/10/25 06:56

>テキストを取得するようにお願いしましたのに、何故画像なのでしょうか。 申し訳ございません。文字数の関係で記載しきれなかったためです。 大変失礼いたしました。 >細かいアドバイスを求めるなら、それらのテーブルの定義も追記した方が良いですね。 >※内容は解析になるので、そこまでの回答があるかは期待しない方が良いと思います。 承知いたしました。ありがとうございます。取り急ぎお礼まで。
sazi

2021/10/25 07:42

> 文字数の関係で記載しきれなかったためです。 そういった場合、回答として情報提供するのが殆どです。
sazi

2021/10/25 07:44

性能に関する切り分けとして、先ずは「XXXX_TBL」を結合しないSQLで性能が問題になるかを実行計画と共に確認してみてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問