Hi,
verwendet jemand von euch Oracle Text mit einer NDATA Section für die Namenssuche? Ich versuche gerade, dass ans Laufen zu bekommen und bin, was die Performance anbelangt, nicht sonderlich begeistert.
Verwendet wird Oracle 11.2.0.3 Ent. auf einem virtuellen Server mit 6 CPUs und 20GB SGA. Die betreffende Tabelle hat 50 Mio Einträge.
Der Index wird wie folgt angelegt:
Die Abfrage sieht wie folgt aus:
Die Performance ist nicht gerade berauschend. Auch wenn die Abfrage mehrfach ausgeführt wird, kann es 10 oder 20 Sekunden dauern, bis ein Ergebnis kommt.
Schränke ich die Gewichtung ein (z.B. auf 90) wird es noch schlimmer. FIRST_ROWS bringt ebenfalls keine Verbesserung.
Verwendet ich nur eine ndata Section, ist es deutlich besser, aber in Kombination praktisch unbenutzbar. Eine Partitionierung der Tabelle wäre unglücklich, da ansonsten andere Abfragen über alle Partitionen hinweg suchen müssten. Gibt es hier noch weiteres Optimierungspotential?
Dim
verwendet jemand von euch Oracle Text mit einer NDATA Section für die Namenssuche? Ich versuche gerade, dass ans Laufen zu bekommen und bin, was die Performance anbelangt, nicht sonderlich begeistert.
Verwendet wird Oracle 11.2.0.3 Ent. auf einem virtuellen Server mit 6 CPUs und 20GB SGA. Die betreffende Tabelle hat 50 Mio Einträge.
Der Index wird wie folgt angelegt:
Code:
begin ctx_ddl.create_preference(preference_name => 'name_store',object_name=> 'MULTI_COLUMN_DATASTORE'); ctx_ddl.set_attribute(preference_name => 'name_store',attribute_name => 'columns',attribute_value => 'NAME1,NAME3'); ctx_ddl.create_section_group('name_sg', 'BASIC_SECTION_GROUP'); ctx_ddl.add_ndata_section('name_sg','NAME1','NAME1'); ctx_ddl.add_ndata_section('name_sg','NAME3','NAME3'); end; / create index tbl0100person_ix1_3 on tbl0100person (name1) indextype is ctxsys.context parameters ('datastore name_store section group name_sg memory 100m') parallel 10;
Code:
select persno,name1,name3 from tbl0100person where contains(name1,'ndata(name3,müller) and ndata(name1,bernd)')>0
Schränke ich die Gewichtung ein (z.B. auf 90) wird es noch schlimmer. FIRST_ROWS bringt ebenfalls keine Verbesserung.
Verwendet ich nur eine ndata Section, ist es deutlich besser, aber in Kombination praktisch unbenutzbar. Eine Partitionierung der Tabelle wäre unglücklich, da ansonsten andere Abfragen über alle Partitionen hinweg suchen müssten. Gibt es hier noch weiteres Optimierungspotential?
Dim
Comment