Megválaszolatlan hozzászólások | Aktív témák Pontos idő: szomb. ápr. 27, 2024 11:25



Hozzászólás a témához  [ 4 hozzászólás ] 
oracle index 
Szerző Üzenet
gyémánt tag
Avatar

Csatlakozott: hétf. jún. 26, 2006 11:21
Hozzászólások: 2544
Hozzászólás 
kocek írta:
nos, kiderítettem:
csak konstans érték esetén használja az indexet

több okból sem használja az indexet:
1. Persze, hiszen az explain plan létrehozásakor az "anotherfield * 2" esetben még nem lehet tudni, hogy a második paraméter -2 lesz minden sornál (csak majd amikor kiolvassa az anotherfield-et)
2. Másrészt az érték nem is konstans. Ekkor ahol -2 lesz a paraméter, ott keresse index alapján, ahol -4 ott meg ne? Ha egyetlen sornál már nem -2, akkor nem tud index alapján keresni.


kedd aug. 28, 2007 13:42
Profil Privát üzenet küldése
arany tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 125
Hozzászólás 
nos, kiderítettem:
csak konstans érték esetén használja az indexet


szer. aug. 22, 2007 15:29
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: pén. márc. 26, 2004 9:12
Hozzászólások: 2711
Tartózkodási hely: Budapest, Érd
Hozzászólás 
Metyu spam-jének kitörlése után, íme egy építő jellegű hozzászólás is :) :

A választ nem tudom :P, de:
Használsz TOAD for oracle -t?

Ha nem akkor tölts le egyet.
Hozd létre az indexedet, ahogy akarod.
Írd meg a SELECT-et és nyomd meg az SQL Editor ablakban a kis mentőautó ikonját (Explain Plan), ez megmondja neked, hogy az adott SELECT hogyan fog lefutni....azaz használni fogja-e az oracle az indexedet, vagy nem!


pén. aug. 17, 2007 8:32
Profil Privát üzenet küldése
arany tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 125
Hozzászólás oracle index
Helló!

Ha Oracle-ben csinálok indexet egy mező Substr-es részére (pl.:
Kód:
SUBSTR(afield, -2)
)
akkor ha egy selectben erre csinálok lekérdezést, de a paraméter(eke)t nem direkt módon adom meg, hanem egy kifejezéssel, aminek az értéke az indexben megadott érték (pl.:
Kód:
WHERE
  SUBSTR(afield, anotherfield * 2) = '01'

(ahol anotherfield = -1)), akkor az Oracle használni fogja az indexet, vagy csak akkor, ha direkt módon adom meg (pl:
Kód:
WHERE
  SUBSTR(afield, -2) = '0'
)?

Köszi


csüt. aug. 09, 2007 17:41
Profil Privát üzenet küldése
Hozzászólások megjelenítése:  Rendezés  
Hozzászólás a témához   [ 4 hozzászólás ] 

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 15 vendég


Nem nyithatsz témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.

Keresés:
Ugrás:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Magyar fordítás © Magyar phpBB Közösség