ďťż
 
[Oracle PL/SQL] problem z execute immediate ďťż
 
[Oracle PL/SQL] problem z execute immediate
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[Oracle PL/SQL] problem z execute immediate



ms - 20-10-2007 00:01
[Oracle PL/SQL] problem z execute immediate
  Witam

Podczas wykonywania tego bloku program wisi na poleceniu execute immendiate.
Moglby mi ktos pomoc i powiedziec w czym jest problem, bo mnie juz szlak
trafia :)
Dodam, ze samo zapytanie wykoywane np: w SQL+ wykonuje sie natychmiast bez
zadnych problemow.

as
c_QuerySql varchar2(2000);
n_Index binary_integer;

begin
c_QuerySql:='select /*+ ordered index(o dot_ow_nhd) */ count(1) '||
'from (select nip from dot_rdx_nip) n, dot_ow o '||
'where substr(replace(o.nip,:1,:2),1,10)=n.nip '||
'and rownum=1';

execute immediate c_QuerySql into n_Index using '-', '';

raise_application_error(-20000,'Poszlo');
end;

Z gory dzieki za pomoc lub slyszne sugestie.
Mikolaj





ms - 20-10-2007 00:01

  Po wielu eksperymentach doszedlem do wniosku, iz nie jest uwzgledniania
podpowiedz, a zapytanie wykonywane jest jako full-scan.
Czy to mozliwe ??

Pozdrawiam
Mikolaj




szaman - 20-10-2007 00:02

  ms pisze:
> Po wielu eksperymentach doszedlem do wniosku, iz nie jest uwzgledniania
> podpowiedz, a zapytanie wykonywane jest jako full-scan.
> Czy to mozliwe ??
>

Jak najbardziej w końcu to tylko hint a nie instruction.

v$sql_plan jest to widok w którym znajdziesz faktyczny plan wykonania.

Obowiązkowa lektura to
http://www.oracle-base.com/articles/misc/Outlines.php




dap997 - 21-10-2007 00:00

  ms wrote:
> Po wielu eksperymentach doszedlem do wniosku, iz nie jest uwzgledniania
> podpowiedz, a zapytanie wykonywane jest jako full-scan.
> Czy to mozliwe ??

Mozliwe, ale wlacz po prostu trace i zobacz co jest w plikach wynikowych
tkprof.

dap





=?ISO-8859-2?Q?S=B3awomir_Szysz=B3o?= - 21-10-2007 00:00

  Dnia Fri, 19 Oct 2007 13:58:40 +0200, "ms" <mikolaj@NO_SPAM_tenbit.pl>
wklepał(-a):

>Witam
>
>Podczas wykonywania tego bloku program wisi na poleceniu execute immendiate.
>Moglby mi ktos pomoc i powiedziec w czym jest problem, bo mnie juz szlak
>trafia :)
>Dodam, ze samo zapytanie wykoywane np: w SQL+ wykonuje sie natychmiast bez
>zadnych problemow.
>
>as
> c_QuerySql varchar2(2000);
> n_Index binary_integer;
>
>
>begin
> c_QuerySql:='select /*+ ordered index(o dot_ow_nhd) */ count(1) '||
> 'from (select nip from dot_rdx_nip) n, dot_ow o '||
> 'where substr(replace(o.nip,:1,:2),1,10)=n.nip '||
> 'and rownum=1';
>
> execute immediate c_QuerySql into n_Index using '-', '';
>
> raise_application_error(-20000,'Poszlo');
>end;

Hint ordered potrafi różne cuda wyczyniać np. zamiast przeglądać 10 MB danych, z
tym hintem wychodzi 1 GB.

Zrób najpierw indeks funkcyjny na dot_ow.nip:

create index dot_ow_nip_i on dot_ow(replace(nip,'-','')) compute statistics;

no i jeszcze na dot_rdx_nip.nip i potem zacznij działać.
--
Sławomir Szyszło mailto:slaszysz@poczta.onet.pl
Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych
FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/
Archiwum http://groups.google.com/groups?grou...mp.bazy-danych
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Oracle 19g +Insert +Insert +Insert... [oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?= [Oracle] jak =?ISO-8859-2?Q?ograniczy=E6_pami=EA=E6_dla_se?==?ISO-8859-2?Q?rwera=3F?= =?ISO-8859-2?Q?=5BOT=5D_Zdany_egzamin_Oracle_1Z0-007_a?==?ISO-8859-2?Q?_brak_informacji_na_stronie_Prometric_-_czy?==?ISO-8859-2?Q?_co=B6_nie_tak=3F?= jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?= [oracle] czy da =?ISO-8859-2?Q?si=EA_z_poziomu_procedury_?==?ISO-8859-2?Q?zrobi=E6_kopi=EA_zapasow=B1=3F?= [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= [oracle 10g] czy =?ISO-8859-2?Q?mo=BFna_wy=B3=B1czy=E6_wszys?==?ISO-8859-2?Q?tkie_wi=EAzy_w_schemacie=3F?= MSSQL Express czy Oracle Express =?iso-8859-2?q?[oracle]_Jak_sprawdzi=E6_wielko=B6=E6_tabeli_=3F=3F?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nawschodzie.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com