問題タブ [query-performance]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - Mysql クエリのパフォーマンス -
次のMysqlクエリがあります
結果 :
質問:
- このクエリの実行時間を知るにはどうすればよいですか?
- テーブル
MdhRawAsset
には 3750 万のデータが含まれています。このクエリを記述するより良い方法はありますか?
sql - インデックスなしでこのクエリが高速になるのはなぜですか?
新しいシステムを継承し、データを改善しようとしています。私はこの表を改善しようとしていますが、私の発見を理解できないようです。
私は次のテーブル構造を持っています:
このテーブルには、約22万件のレコードが含まれています。特定の日付よりも古い日付を持つすべてのレコードを返す必要があります。この場合、2009年12月1日。このクエリは約66kレコードを返し、実行には約4秒かかります。過去のシステムから、私がこれに取り組んできたのは高いようです。特に、テーブルにあるレコードの数を考えると。ですから、その時間を減らしたいと思います。
だから私はそれを下げるためのいくつかの良い方法は何でしょうか?テーブルに日付列を追加し、文字列dateを実際の日付列に変換してみました。次に、その日付列にインデックスを追加しましたが、時刻は同じままでした。レコードがそれほど多くないことを考えると、テーブルスキャンがどのように高速であるかはわかりますが、インデックスによってその時間が短縮される可能性があると思います。
また、月と年の列をクエリすることも検討しました。しかし、私はまだそれを試していません。また、可能であれば日付列から外したいと思います。しかし、そうでなければ私はそれを変えることができます。
どんな助けでも大歓迎です。
編集:これが私が実行しようとしているクエリであり、テーブルの速度をテストしています。私は通常列を出しますが、簡単にするために使用しました*:
編集2:それで、私は、recvddateデータを含むが、varcharではなく日付として日付列を持つテーブルを作成しようとしたと述べました。これが、上記のクエリのTicketRecvdDateTime列です。このテーブルに対して実行している元のクエリは次のとおりです。
sql - SQLEXISTSのパフォーマンス
EXISTS
SQLが行の存在をチェックすることは理解していますが、式全体を評価しますか?たとえば、次のようになります。
このようなものよりも速くなります:
sql - MySQL クエリのパフォーマンス
次のテーブル構造があります。
EVENT_COMMENTS
テキストフィールドまたは非常に大きなフィールドを追加する必要がありますVARCHAR
。
このテーブルにクエリを実行する場所が 2 つあります。1 つは、すべてのイベントを一覧表示するページです (そのページでは、event_comments フィールドを表示する必要はありません)。
そして、event_comments フィールドを表示する必要がある、特定のイベントのすべての詳細をロードする別のページです。
そのイベントの event_id と event_comments を含む追加のテーブルを作成する必要がありますか? または、現在のテーブルにそのフィールドを追加する必要がありますか?
言い換えれば、私が求めているのは、テーブルにテキスト フィールドがあるが、そうでないSELECT
場合、テーブルへのクエリのパフォーマンスに影響するかということです。
sql-server - SQLServerの非クラスター化インデックスが実行プランに表示されることはありません
tbl_event
非クラスター化インデックスで呼び出され、次のようIDX_Event_Folder
にIDX_Event_Time
定義されたデータベーステーブルがあります。
次の簡単なクエリを実行し、実行プランを真下に表示しました。
クエリ1:
クエリ2:
私の質問は、なぜnobjectidのインデックスが使用されないのですか?これらのselectステートメントのwhere句でnobjectidが指定されている場合、インデックスのシークまたはスキャンが行われると思います。この分析についての私の理解は間違っていますか?
sql - MySQLで指定された基準を満たすx個のランダム行を取得するための最適化された方法
いくつかの基準を満たすデータベーステーブルからx行を取得する必要があります。ORDER BY RAND()を使用してMySQLからランダムな行を取得できることを知っています。
同じことを行うための最も最適化された方法を探しています{システムリソースの使用率を低くすることが最優先事項です。次に重要な優先事項は、クエリの速度です}。また、テーブルデザインでは、「猫」をINDEXにする必要がありますか?
mysql - これらの列にインデックスを作成する必要がありますか?
データベースにいくつかの列があり、ほとんどがvarchar255です。アクセスは1回だけですが、ログインしているユーザーのページの読み込み/リクエストごとに1回読み込まれます。(ほとんどの場合、ユーザーの設定などが含まれています)。
私の質問は、これらの列にインデックスを作成する必要があるかどうかです。一度だけ読み取ってこれらの列のように格納するのではなく、複数のクエリで使用される他の列のインデックスをすでに持っています。
sql-server - SQLのパフォーマンスの問題
SQLServer2000に2400万レコードのデータベースがあります。
このクエリを実行すると
そしてこれさえ
それは非常に高速に実行され、最初の10秒で3500レコードを返します。これstarttime
はchar(30)
データベースにあることに注意してください。
しかし、このクエリを実行すると、10〜60秒で32レコードが返されます
::@MinDateの値は2011-05-1500:00:00.000です
starttime
私のデータベースで索引付けされていることに注意してください
私の問題は何ですか?
performance - ms-access クエリのパフォーマンス
次のようなレコード ソースを持つサブフォームがデータシート ビューに表示されています。
myFunction()
は、MySQL ストアド プロシージャを呼び出す vba 関数です。
問題は、myFunction()
あまりにも頻繁に呼び出されることです。たとえば、レコードが変更されていない場合でも、フォーカスが同じレコード内の列から列に移動するたびに呼び出されます。これが起こらないようにする方法はありますか?
sql - 2 つのクエリを 1 つにマージする
1 つのクエリでこれを実行できるかどうかはわかりませんが、実行したいと思います。
次のようなすべてのレコードが必要です。
また、この条件に該当するレコードも除外したいと思います。
更新:(混乱して申し訳ありません)
- したがって、field_1 が 1、2、3、または 4 に等しく、日付のタイムスタンプが今日の場合、レコードを表示する必要があります (結果に追加)。
- また、field_1 が 1、2、3、または 4 に等しく、日付のタイムスタンプが今日よりも小さい場合 (結果から削除します)。
両方の結果を 1 つのクエリにまとめるアイデア
注(これが違いを生む場合):
- field_a の値は a ~ z、1 ~ 99 (2 文字のみ) です。