Jaky SQL server (possibly flame) ?

Honza Pazdziora adelton na informatics.muni.cz
Úterý Květen 2 09:46:28 CEST 2000


On Mon, May 01, 2000 at 09:41:57AM -0700, Jakub Labath wrote:
>  
> > Ale prece v produkcnim prostredi nebudete vyhledavat pomoci LIKE nad
> > dlouhymi sloupci. Stejne si to musite oindexovat nejak bokem. V MySQL
> > treba v Perlu, v Oraclu treba interMediaTextem.
> 
> Suhlasim,
> Co to presne znamena "oindexovat nejak bokem".

Ze normalni indexy udrzuji pro hodnotu sloupce (ci sloupcu ci funkci
nad sloupci) cislo zaznamu (ci rowid), a to cislo zaznamu je v tom
indexu jednou. Zde ale mam v jednom sloupci tech hodnot hodne --

	malicky jezek neleta

mi vygeneruje indexove zaznamy (napriklad) malicky ->rowid, jezek ->
rowid, neleta -> rowid, a take to, ze malicky je pred jezek.
A nasledne je pak treba zajistit, ze dotaz

	malicky jezek and not leta

najde rozumne zaznamy v puvodni tabulce.

Tim bokem jsem chtel rict, ze to pak uz neni normalni index.

V Oracle 8.0 je ConText cartridge, kde je to opravdu externi proces
(ctxsrv), ktery zajistuje jednak indexaci zmenenych zaznamu, jednak
i prevod SQL dotazu (contains(sloupec, 'malicky jezek and not leta') > 0)
na SQL dotaz, ktery to vyhodnoti.

V Oracle 8.1 se ta vec jmenuje interMediaText, ty textove indexy jsou
jednim z rozsirujicich typu indexu.

Pokud to databazovy server primo nepodporuje, je nutne to delat na
aplikacni urovni -- pro MySQL jsem napsal modul v Perlu, ktery
indexuje kde co, ale uz to neni ciste SQL.

> Kde sa mozem dozvediet viac?

Dokumentace k Oraclu.

-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
   .project: Perl, DBI, Oracle, MySQL, auth. WWW servers, MTB, Spain.
------------------------------------------------------------------------


Další informace o konferenci Databases