問題タブ [query-analyzer]
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.
lucene - Lucene のキーワード アナライザーの使用中に直面する問題
luceneのキーワードアナライザーがうまく使えず、
結果: (id:new location:new) (id:york location:york)
期待される結果: (id:new york location:new york) (id:new york location:new york)
私がここで間違っていることを特定するのを手伝ってください??
postgresql - テキスト検索と地理空間データを扱うときに Postgres Query Analyzer に影響を与える方法
次のステートメントで、自分で修正できないという非常に深刻なパフォーマンスの問題があります。
与えられた状況
- Postgis 1.4がインストールされたpostgres 8.4データベースがあります
- 〜 900 万のエントリを持つ地理空間テーブルがあります。このテーブルには (postgis) ジオメトリ列と tsvector 列があります
- ジオメトリに GIST インデックスがあり、vname 列に VNAME インデックスがあります
- テーブルは
ANALYZE
'd
to_tsquery
これらのジオメトリのサブセット内でテキスト検索を実行すると、影響を受けるすべての ID が返されます。
検索する領域は、900 万のデータセットを約 100.000 に制限し、ts_query
この領域内の結果セットは、0..1000 エントリの出力を与える可能性が最も高くなります。
問題
クエリ アナライザーは、最初に vname でビットマップ インデックス スキャンを実行することを決定し、次に集約してジオメトリにフィルターを適用します (および、このステートメントに含まれるその他の条件)。
クエリ アナライザーの出力:
これにより、多くのI/Oが発生します-AFAIK最初にジオメトリを制限し、後でvname検索を行う方が賢明です。
試みられた解決策
目的の動作を達成するために、私はしようとしました
- 私はgeom @@
AREA
をサブセレクトに入れました->実行計画を変更しませんでした - 目的の領域サブセットで一時ビューを作成しました -> 実行計画を変更しませんでした
- 目的の領域の一時テーブルを作成しました -> 作成に 4 ~ 6 秒かかり、さらに悪化しました。
ところで、実際のクエリを投稿していないことをお詫びします。投稿した場合、上司は本当に怒っていると思います。また、誰かが実際のクエリを修正するための理論的な指針をもっと探しています。さらに説明が必要な場合はお尋ねください
編集
width
リチャードは非常に良い点を持っていました.ステートメントを使用してクエリプランナーの望ましい動作を実現できます. 悪い点は、この一時テーブル (または CTE) が vname インデックスをめちゃくちゃにするため、場合によってはクエリが何も返さないことです。
を使用してオンザフライで新しい vname を作成することでこれを修正できましたto_tsvector()
が、これは (あまりにも) コストがかかります - クエリごとに約 300 - 500 ミリ秒。
私の解決策
私は vname 検索を捨てて、単純なLIKE('%query_string%')
(10-20 ミリ秒/クエリ) を使用しましたが、これは私の特定の環境でのみ高速です。YMMV。
sql-server - SQL Server(クエリアナライザー)でクエリの結果に隠された文字を識別するための最良の方法は何ですか?
誤ったデータを特定しようとする場合(多くの場合、手動で確認して削除する必要があります)、TAB、スペース、キャリッジリターン、ラインフィードなどの非表示の文字を簡単に確認できるようにしたいと思います。このための組み込みの方法はありますか?
スタックオーバーフローに関する同様の質問で、Oracleに関して、DUMP(fieldname)関数が提案されましたが、対応する関数がSQL Serverに存在する場合でも、文字を確認する必要があるため、この関数が簡単になるかどうかはわかりません。彼らの文脈で。
私が思いついた最善のアイデアは、予想される非表示の文字を次のように表示可能な文字に置き換えることでした。
SELECT REPLACE(REPLACE(REPLACE(REPLACE(myfield, ' ', '˙'), CHAR(13), '[CR]'), CHAR(10), '[LF]'), CHAR(9), '[TAB]') FROM mytable
もっと良い方法はありますか?垂直TABなど、私が考慮していない他のあまり一般的でない非表示文字がある可能性があるため、この方法は好きではありません...ほとんどすべてのテキストエディタで実行できるように、「非表示文字を表示」をオンにします。 SQL Server Query Analyzerの優れた機能になるので、SQL Serverでもなんらかの方法で実行できるとほぼ期待しています...または、少なくとも誰かがこの種の空白を表示するために、私よりも優れたアイデアを持っていることを期待しています。情報。
SQLクエリアナライザではなく、かつてSQLEnterpriseマネージャであったインターフェイスの一部に「空白」を表示する組み込みの方法があることに気づきました。SQL Management Studio Object Explorerツリーでテーブルを右クリックし、[上位200行の編集]を選択します。結果として、空白(少なくともCR LF)は空の正方形として表示されます。
solr - solr QParserPlugin がキーワード フィールドに空白トークナイザーを使用しないようにするにはどうすればよいですか?
Solr スキーマにキーワード フィールドがあります。
このフィールドをデフォルトの solr クエリまたは dismax クエリ
category:(Mouse Pad)
で検索しようとすると、クエリが作成されます(category:Mouse) AND (category:Pad)
キーワード フィールドなどの場合、用語を空白で分割しない方法があることを知りたいです。
追加:SimpleKeywordTokenizerFactory
クエリで分析 (空白を分割しない小文字) が必要なためraw
、term
クエリ パーサーが機能しません
java - アナライザーがelasticsearchのcouchdb Riverでクエリ文字列を実行していることが見つかりませんでした
大きな間違いを犯していることは確かですが、それを並べ替える方法がわかりません。
私のcouchdbリバーと私のインデックスは次のように定義されています:
クエリは、JAVA アプリケーションを介して実行されます。
クエリ フェーズ中に、カスタム アナライザーが見つからないことを示す QueryParsingException に直面しています。
私が間違っていることは何ですか?インデックスと検索段階で asciifolding 機能が本当に必要です。
ありがとう!
sql-server-2000 - チェックポイントを使用してダーティページをクリアし、MemoryStatusから結果を取得する
警告:私はジェネラリストです。SQLサーバーの構成について知っていることは、集まってへそに入れることができ、リントが移動することはありません。ほとんどの場合、必要なものを取得するためのクエリを作成できます。残念ながら、私はサーバーにそのことを実行させる責任もあり、それについてはほとんど何も知りません。
遅いSQLサーバー(2000)の問題を解決しようとしています。テストクエリで一貫した時間を必要としているので、バッファ/キャッシュをクリアしています。
とりわけ、いじり回す前に、すべてのダーティページがディスクに書き込まれていることを確認したかったのです。
しかし、コマンドを実行すると:
...ダーティページの数は変わりません。
サーバーを再起動すると変更されましたが、起動時に70ページのダーティページが表示されていました。
私は明らかにここで何かを理解していません。タイミングテストを実行しているときに、サーバーを同じ状態で起動していることを確認するための適切で一貫した方法はありますか?(これはアクティブなWebサイト上のライブサーバーであり、10分ごとに再起動するのではありません。)
tsql - MS SQL 2008 R2 Queryanalyzer がコードで正常に実行されました。LOGO アプリケーション内の失敗した SQL コード フィールドが実行されています
MS SQL 2008 R2 Queryanalyzer がコードで正常に実行されました。LOGO アプリケーション内の失敗した SQL コード フィールドが実行されています。
エラー :
私のコード:
また、レポート用のアプリケーション、スムーズに実行される t-sql コード、queryanalzer. スタックオーバーフローエラーがスタックから直接識別できる場合、データを変換することは可能でしょうか? どうですか?ビデオでステップごとに説明するドキュメントを見つけることができますか?
エラーの詳細:
cpu registers: eax = 0d3e2f60 ebx = 0d40ef98 ecx = 00000000 edx = 0042967e esi = 00000019 edi = 0012fc24 eip = 0042967e esp = 0012efa8 ebp = 0012f004
sql-server - Query Analyzer ではクエリは高速に実行されますが、C# アプリケーションでは低速です
SQL Server 2005 を使用すると、いくつかの大きなテーブルに対して SQL クエリが実行され、プログラムでタイムアウトになります。しかし、Query Analyzer で実行すると、約 30 秒で終了します。
違いはなぜですか?
sql-server-2005 - SQL Server 2005 Expressエディションにクエリアナライザーはありますか?
SQL Server 2005 Expressエディションをダウンロードしましたが、クエリを実行したりデータベースを設計したりするためのクエリアナライザーを調整できませんでした。
sql-server - 「上位 200 行の編集」のためにクエリ アナライザーのデフォルト SQL を変更することは可能ですか?
下位 200 行またはカスタム クエリを編集したい場合、これは可能ですか?