[Ludia-users 144] Re: 複数のテーブルに対する全文検索について

Back to archive index

ssenou sseno****@techn*****
2007年 12月 13日 (木) 11:53:04 JST


回答ありがとうございます。

> レコードが1行しかないため、シーケンシャルスキャンのほうが
> 高速と判断されています。

データを10万行でも試してみたのですが、
1行も10万行も実行計画に変化が無いので
サンプルを1行として質問していました。

> ・postgresql.conf にenable_seqscan = off と記述する。

この設定をして明示的にERRORが発生するようにしています。

ludia1.3系や従来のコスト計算モードでも試したのですが、
結果は同じでした。

以上よろしくお願いします。


----- Original Message ----- 
From: <kousa****@nttda*****>
To: <ludia****@lists*****>
Sent: Thursday, December 13, 2007 11:40 AM
Subject: [Ludia-users 143] Re: 複数のテーブルに対する全文検索について


> 幸坂です。こんにちは。
>
> レコードが1行しかないため、シーケンシャルスキャンのほうが
> 高速と判断されています。
>
> ・レコード数を増やす。
> ・postgresql.conf にenable_seqscan = off と記述する。
>
> などの方法を用いれば、インデックススキャンが利用されるはずです。
>
>> -----Original Message-----
>> From: ludia****@lists*****
>> [mailto:ludia****@lists*****] On Behalf Of ssenou
>> Sent: Thursday, December 13, 2007 11:27 AM
>> To: ludia****@lists*****
>> Subject: [Ludia-users 142]複数のテーブルに対する全文検索について
>>
>> 瀬能です。
>> お世話になっています。
>>
>> 質問があるのですが、
>> 複数のテーブル(text型カラム)に対する複数の@@検索を実行すると
>> 必ずシーケンシャルスキャンになってしまうのですが、
>> 複数のテーブル(text型カラム)に対する複数の@@検索は想定していない仕様です
> か?
>> (SQL文で対応出来ない事もないですが、できるだけ自由な記述をしたいと思ってい 
>> 
> るので…)
>> また、回避方法などあれば教えてください。
>>
>> 以上よろしくお願いします。
>>
>> ■環境
>> Redhat Enterprise Linux 4 U5
>> ludia 1.4.0 (mecab-0.96 ipadic-2.7.0 senna-1.0.9
>> postgresql 8.2.4
>>
>> ■設定
>> postgres.conf
>> ・ludia.max_n_sort_result = 100000
>> ・ludia.enable_seqscan = off
>> ・ludia_sen_index_flags = 31
>> ・ludia.max_n_index_cache = 16
>> ・ludia.initial_n_segments = 2048
>> ・ludia.usegenericcost = on or off共に
>>
>> ■DB
>> ・table1(構成)  : id(key) int4,data text
>> ・table2(構成)  : id(key) int4,data text
>> ・table1(DATA)  : id = 1,data = "TEST"
>> ・table2(DATA)  : id = 1,data = "TEST"
>> ・table1(INDEX) : fulltextb
>> ・table2(INDEX) : fulltextb
>>
>> ■現象
>> SELECT * FROM test1,test2
>> WHERE table1.data @@ 'TEST' or table2.data @@ 'TEST'
>>
>> と実行すると
>>
>> "Nested Loop  (cost=0.00..2.04 rows=1 width=24)"
>> "  Join Filter: ((table1.data @@ 'TEST'::text) OR (table2.data @@
>> 'TEST'::text))"
>> "  ->  Seq Scan on table1  (cost=0.00..1.01 rows=1 width=12)"
>> "  ->  Seq Scan on table2  (cost=0.00..1.01 rows=1 width=12)"
>>
>> とシーケンシャルスキャンになってしまいます。
>>
>> _______________________________________________
>> Ludia-users mailing list
>> Ludia****@lists*****
>> http://lists.sourceforge.jp/mailman/listinfo/ludia-users
>>
>
> _______________________________________________
> Ludia-users mailing list
> Ludia****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/ludia-users
>
> 




Ludia-users メーリングリストの案内
Back to archive index