私はあなたが確実に伝えることができる唯一の方法はであり、私は現在、0から9999GENERATE SERIESはSUBQUERYよりも速いですか?
答えて
にSMALLINT値のシーケンスでロードされた表をサブ照会よ、私のクエリを最適化したいと思います試して。
私は2,3ヶ月前にPostgreSQLを使って同様のテストを行いました。問題は、カレンダー表をgenerate_series()に置き換えることが理にかなっているかどうかです。
私たちの場合、テーブルはより速くなりました。しかし、テストすれば、generate_series()が特定の行数で高速になることがわかります。私の考えでは、その時点で、シリーズを生成するのに要する時間は、インデックスと行を読み取るのにかかる時間よりも短くなりますディスク。
PostgreSQLのEXPLAIN ANALYZEは、ディスクI/Oについて詳しくは分かりません。
あなたのカレンダーファクトテーブルと非常によく似た状況がありました。http://stackoverflow.com/questions/2616119/date-lookup-table-1990-01-012041-12-31 ..私の状況は次のとおりです。私はファクトテーブルを持っています0から9999の系列を含む1つの小整数(32767)列と、Pick-4宝くじゲームで描かれたすべての数字(2,820の数字)にNOT INサブクエリを実行するインデックスが付けられているので、私は、生成シリーズを使用すると、10,000行の余分なテーブルを開く必要があると考えていますか? –
私はdbmsが "テーブルを開く"必要があるとは思わないでしょう。推測は、特にデータベース管理システムではうまく拡張できません。そのため、クエリオプティマイザが何をしているのかを確認する方法があります。すべてのNOT IN問合せで索引を使用できないと仮定する必要があります。 Googleの "sargable表現"。 10000行はあまり多くありません。オプティマイザは索引を使用することができたとしても、その表に対して順次スキャンを実行することがあります。 –
私たちのSET EXPLAIN ONはまた何が起こっているのかについて多くの説明を得ていない別の領域です。クエリのオプティマイザはコストベースですが、ディスクI/O、CPU使用率、テーブルスキャンとインデックスの使用などは説明しません。通常、他のプロセスを最小限に抑えるためにセーフブートを行いますWINDOWSタスクマネージャのパフォーマンスアナライザまたはUNIXの「sar」(システムアクティビティレポート)を使用して、何が起きているのかを確認します。私の過去の経験は、NOT INで評価される10,000行を含むテーブルをスキャンしなければならないサブクエリです.ORに相当するのは、NOT IN(1,2,3 ...)よりも高価です。 –
- 1. 950Mよりも950M速いですか?
- 2. if-elifよりも速い
- 3. JODCONVERTERよりも速い
- 4. foreachよりも速いクエリ
- 5. はMove()よりも「絶対的」に速いですか?
- 6. はなぜコード2よりもコード1速いのですか?
- 7. O(log n)は常にO(n)よりも速いですか
- 8. は正規表現よりも速いですか?
- 9. アクティビティはフラグメントよりも作成が速いのですか?
- 10. Cython:intよりもsize_tが速いのはなぜですか?
- 11. ツリートラバーサル、再帰はPythonの反復よりも速いですか?
- 12. pg_trgmよりも速いpostgresファジーマッチはありますか?
- 13. ImageMagickより速いものはありますか?
- 14. Python:大きなリストではないものよりも速いものはありますか?
- 15. なぜ、このコードは私のものよりも速いのですか?
- 16. はQueryList.toArrayよりも速いQueryList.findです[x]は、角
- 17. なぜWebViewはTextViewよりもはるかに高速です
- 18. Javaは、バブルソートでC#よりも実際に高速ですか?
- 19. 速いtest1のテストよりも高速である理由
- 20. ハイブはスパークより速いですか?
- 21. +は+ =より速いですか?
- 22. os.path.isfileはglob.globより速いですか?
- 23. MS Access 2007の高速ポータブルデータベースの推奨事項よりも速いものはありますか?
- 24. ネストされたループよりも速いアルゴリズムですか?
- 25. JPEGよりもロッシー圧縮が速いのですか?
- 26. なぜJava StampedLockがReentrantReadWriteLockよりも速いのですか
- 27. Apache Solrよりも速い検索プラットフォーム/インデックスエンジンですか?
- 28. C#TPLよりもC++ PPLの方が速いですか?
- 29. 挿入よりもPush_backが速いですか?
- 30. 「adbシェルのscreencap」よりも速いコマンドですか?
ベンチマークしてご覧ください。そして、どのデータベース? –
私の自家製データベースです。 –
あなたはデータベースの質問を理解していないかもしれません。それはSQL ServerかOracleかMySQLか?クエリが書き込まれたデータベースを理解していないと、パフォーマンスの回答を得ることはできません。 –