問題タブ [sql-optimization]
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.
c# - LINQ または Entity Framework が無制限の SQL ステートメントを作成する
私は自分のアプリケーションの速度の最適化に取り組んでいますが、LINQ (または EF) が動作の遅い奇妙な SQL を作成していることを発見しました。
ここにいくつかのコードがあります:
理論的には、25 レコードを取る SQL ステートメントを作成する必要がありましたが、プロファイラーは次の SQL を表示します。
_databaseView は、並べ替えとフィルター処理のすべてのロジックが実行される IQueryable オブジェクトです。
ここに私が考え出したことがあります:フィルタリングを行わない場合、SQLはSELECT TOP(25)で正常です。しかし、フィルタリングを行うたびに、何かが台無しになります。これが私のフィルターの1つのコードです:
そして、それは何の制約もありません。この LINQ-EF を作成して、適切な SQL を生成するにはどうすればよいですか?
事前にthx!
sql - mysqlの「グループ化」クエリが非常に遅い
このクエリは、約 10 万レコードのテーブルにあり、非常に遅く (3 ~ 4 秒) 実行されます。グループを取り出すと、はるかに高速 (0.5 秒未満) になります。これを修正するために何をすべきか、私はかなり迷っています:
msgtable には、、、および のインデックスthread_id
がありid
ます。senderid
recipientid
返品について説明します:
同じ結果を返しながらこれを高速化する方法についてのアイデア (スレッドごとに複数のメッセージがあり、このクエリではスレッドごとに 1 つのメッセージのみを返したい)。
前もって感謝します。
sql - SQL の最適化
これを最適化する方法は?
mysql - INサブクエリをJOINとして書き換えます
MySQLでINを使用した場合、パフォーマンスが向上したことは一度もありません。また、パフォーマンスの問題が発生しました。
ビューを作成しようとしています。その関連部分は次のとおりです。
基本的には、お客様にメモが付いているかどうかを知りたいだけです。ノートの数は関係ありません。JOINを使用してこれを書き換えて高速化するにはどうすればよいですか?
顧客テーブルには現在150万行あるため、パフォーマンスが問題になります。
postgresql - 複数の OR クエリを最適化する
ユーザーが同じ情報または部分的に同じ情報を入力したかどうかを検証する必要があるデータベース テーブルがあります。
これが私が考えていることです
データベースのレイアウト
クエリ
いずれかのデータが一致する場合 (そうです、誤検知になります)、古い rec_id が必要です。
これを行うためのより良い方法があるかどうか知りたいですか?
ありがとう
sql - 2つのクエリが多くの同じテーブルを使用するUNIONMySQLクエリの最適化
2つの別々のクエリの結果をまとめるためにMySQLでUNIONを使用しています。これらの2つのクエリは、多くの同じテーブルを使用します。クエリを最適化するためにこれを利用する方法はありますか?
長いので、全部読む義務を感じないでください。要点は、ユニオンの両側のクエリが多くの同じテーブルを利用するということです。
sql - SQLでの相互結合の排除
クロス結合を含むクエリを最適化しようとしています。派生テーブルとの相互結合に進む大きなクエリがあります。
派生テーブルをビューに変換することで、クエリの速度が向上しますか?または、その情報を永続的なテーブルにキャプチャすることもできますか?
これが私の質問です
長いクエリなので、すべてを読む必要はありません。要点は、単にクロスジョインがあるということです。私はSQLを初めて使用しますが、クロス結合によって速度が低下すると言われています。
sql - SQL: 速度の向上 - 雑然としたユニオン クエリ
テーブル人口の例:
current_tbl:
import_tbl:
期待される出力:
このメソッドを実行すると、行が次のようになる条件が取り除かれます。
しかし、それはA3行を保持します
これが理にかなっており、過度に単純化していないことを願っています。これは私の他の質問からの続きの質問です。これらの一連の改善により、クエリは最大 32000 ミリ秒から現在の最大 1200 ミリ秒に低下しました。これはかなりの改善です。
サブクエリともちろん通常のインデックスの最適化を使用UNION ALL
して最適化できると思いますが、最適な SQL 最適化を探しています。参考までに、この特定のケースは PostgreSQL 用です。
php - 日付の範囲がSQLの別の日付の範囲と重複しているかどうかを確認する必要があります
部屋の予約を格納するテーブルがあります。スキーマは次のとおりです。
設定された日付範囲の間に利用可能/利用不可の部屋の検索クエリを実行する必要があります。
また、部屋が事前予約された日付とその形式を保持する別のテーブルが存在することにも注意してください。
だから私は設定された範囲内で利用可能な部屋を探すクエリを実行する必要があります、どのようにクエリを定式化しますか?ここではMySQLを使用しています。
- -編集 - -
スキーマのRoomsテーブルもあります。
利用不可/事前予約の日付テーブルには、基本的に散発的な単一の日付が含まれます。利用不可のテーブルの各日付は、メンテナンスなどの理由で部屋を予約できない日付を指します。
php - 事前定義された日付範囲の間にある日数を計算する
これは私がいる複雑な状況です。部屋を予約する予約システムがあります。
重要なのは、部屋の料金は単一の値として保存されるのではなく、期間に基づいているということです。部屋のように、9月から12月の間に1日の料金を設定し、3月から8月に別の料金を設定することができますが、それ以外の場合は基本料金を設定できます。
料金表は次のようになります。
3月1日から3月31日までの部屋の料金が20ドル/日で、4月15日から5月30日までの同じ部屋の料金が30ドルであると仮定します。ただし、料金は15ドル/日の定額料金です。
この部屋が3月15日から5月10日の間に1人のクライアントによって予約された場合、合計費用は次のようになります。
コードでこの値を計算するにはどうすればよいですか。レート期間に基づいて日数を計算する必要があります。そうでない場合は、基本レートを使用します。その複雑ですが、それはそれがどのようであるかです。私はphpMySQLを使用しています