SQL Server に対しレコード数を取得するSQLクエリを実行するが結果が定まらない(クエリ実行の度に件数が大幅に変化)。

Anonymous
2024-04-30T02:22:10+00:00

●質問事項:SQLサーバーへのクエリ結果が大きく変動する要素が何か知りたいです。

●問題事象:SQLサーバーに接続(クエリ実行)するたび得られるレコード件数が大幅に変化する。

●利用環境:Microsoft SQL Server 2017、Microsoft SQL Server Management Studio 18、Tableau Desktop 2023.1

●その他 :会社の状況(SQL画面など)を添付できませんので、メッセージのみでのやりとり希望です。

SQL Server Management Studio 18でSQLビューワーとして簡易利用しています。

SELECT 文でCount(*)でテーブルのレコード数を表示させますが、実行する度に件数が大幅に変わります。

(在庫情報で30万件ほどあるはずですが、数百件のときもあれば数万件のときもあり、30万件表示されることもあります)

SQLの実行結果がおかしいのですが、何か考えられることはありますか?

(例えば、サーバーの負荷が高く処理がおいついていない、サーバーにデータを書き込む処理の最中で誤った件数になる等・・?)

Microsoft SQL Serverの対象テーブルのレコード数を調べるために上記のツールの他、Tableauも併用しています。

Tableauで接続しても同様に件数が大幅にブレるため、SQL Server自体に何か問題がでていないか懸念しています。

※上記のほか、何か必要な情報がありましたらご連絡ください。

お手数ですが宜しくお願い致します。

ビジネス向け Windows | Windows Server | パフォーマンス | その他

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。 プライバシーを保護するために、移行された質問のユーザー プロファイルは匿名化されます。

0 件のコメント コメントはありません
{count} 件の投票

6 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2024-04-30T06:13:23+00:00

    この応答は自動的に翻訳されています。 その結果、文法上の誤りや奇妙な言い回しが生じる可能性があります。

    こんにちは

    マイクロソフト コミュニティ フォーラムに投稿していただき、ありがとうございます。

    説明に基づいて、私はあなたの質問がSQLに関連して いることを理解しています。

    1. SET STATISTICS TIME ON を追加して、STATISTICS TIME を有効にします。クエリの前に。これにより、SSMS のクエリ結果ウィンドウに詳細なタイミング情報が表示されます。
    2. 使用している変数が適切に最適化されていることを確認します。変数がある場合とない場合の実行時間を比較して、顕著な違いがあるかどうかを確認できます。
    3. Tableau が SSMS と同じクエリと接続設定を使用していることを確認します。

    Tableau のログで関連情報を確認することを検討してください。

    1. インデックスの再構築、統計の更新、および整合性チェックを実行してみてください。

    よい一日を。 

    よろしくお願いいたします

    情婦

    0 件のコメント コメントはありません
  2. Anonymous
    2024-04-30T06:49:30+00:00

    こんにちは。

    早速ご連絡頂きありがとうございました。

    私の説明不足かもしれません。申し訳ありません。

    私が利用しているSQLのコードはシンプルで、

    SELECT COUNT(*) FROM TABLE のように特定のテーブルの件数を数えることを行っています。

    (実際のテーブル名などは割愛しています)

    このクエリを実行するとレコード数が表示されますが、クエリを実行する度に値が変わるのです。

    SQLサーバーが正しい結果を返していないように見えます。

    (30万件もの在庫があるのに、クエリ結果が数万件などのレコード数しかないため困惑しています)

    実行してから数分後に再度実行すると件数が大きく増えたり減ったり不安定のようです。

    SQLサーバーがクエリに対して誤った結果を返すケースがあるのか気になっています。

    何かご存じでしょうか?

    0 件のコメント コメントはありません
  3. Anonymous
    2024-04-30T08:10:02+00:00

    SQLサーバーがクエリに対して誤った結果を返すケースがあるのか気になっています。

    何かご存じでしょうか?

    最近はほとんど SQL Server を使っていませんが、以前開発で使ってた頃からを含めて、その様な根本的機能の問題はこれまで聞いたことがありません。

    ありそうなことは次の3種類ぐらいと思います。1番は開発時に経験していますが、2と3が実際に起こったのは見たことはありません。

    1.結果を正常に取得していない、などのシステムでのSQL実行上の問題

    2.本当にデータ件数が増減している

    3.メモリー、ディスクなどのハードウェアの障害

    幸いにこの問題は容易に再現する様子なので、時間をかけて「素のSQLコマンド」を何回も実行するとか、リモートでの実行等して、確認してはいかがでしょう。

    0 件のコメント コメントはありません
  4. Anonymous
    2024-04-30T08:35:38+00:00

    こんにちは。

    早速ご連絡ありがとうございます。

    とてもシンプルなSQL(SELECT COUNT(*) FROM TABLE)を実行しているので、1も考えにくいでしょうか。

    30万件の在庫情報ですので、2のデータ件数の増減も考えにくいのではないかと思われます。

    (30万件の在庫表示が、時には2万件などまで減っているような表示になるのですが、考えにくいです・・)

    上記の中で気になるのは3のハードウェア障害でしょうかね、、、

    SQL ServerのマシンのCPUなど負荷の状況を確認するなどが有効でしょうか?

    リモートの実行というのは、SQL Serverのマシンにアクセスして実際の件数を調べる等でしょうか?

    質問ばかりで申し訳ありません。

    よろしくお願いいたします。

    0 件のコメント コメントはありません
  5. Anonymous
    2024-05-01T02:33:53+00:00

    皆さん、ご返信ありがとうございました。

    お騒がせして恐縮ですが、自己解決しました。

    こちらで確認を進めたところ、

    Microsoft SQL Server側のテーブルのデータ更新に時間がかかっていたようです。

    (毎時の更新の度に20分以上・・・)

    この更新時間中にほかのツールから接続を試みたため、中途半端なデータが

    クエリ結果として表示されていたようです。

    ありがとうございました。

    0 件のコメント コメントはありません