Во-первых, напишите запрос, используя правильный, явный, стандартный стандартный синтаксис join
:
select count(*) over () AS tot_count,
PG.DESCR as partner,
THAF.APPDATA
from transhist th join
partnergrpkey pgk
on TH.TRNSLTPARTNERKEY = PGK.DOCHISTPARTNERKEY join
partnergroup pg
on PG.ID = PGK.PARTNERGROUPID join
trans_app thaf
on THAF.TRANSHISTID = th.id
where TH.CreateDt >= to_date('?startdate', 'yyyymmddhh24mi') and
TH.CreateDt <= to_date('?enddate', 'yyyymmddhh24mi')+1/1440 and
TH.TRANSSET = '820' and
THAF.COLUMNID = 74 and
THAF.APPDATA LIKE '%|?acctNo|%' and
pg.ID IN (?tpValues)
order by TH.ID;
Для этого запроса я ожидаю, что помогут следующие индексы:
transhist(TRANSSET, CreateDt, TRNSLTPARTNERKEY, id)
partnergrpkey(DOCHISTPARTNERKEY, PARTNERGROUPID)
partnergroup(id)
trans_app(TRANSHISTID, COLUMNID, APPDATA)
Они похожи на индексы, которые у вас есть. Возможно, вы захотите проверить план выполнения, чтобы увидеть, действительно ли используются индексы.
удостоверьтесь, что у Вас есть своя установка ORACLE_HOME точно то же как тогда, когда сервер был запущен, я видел эту проблему с оракулом 9.2.0.5.0 на solaris,
ORACLE_HOME=/opt/oracle
ORACLE_HOME=/opt/oracle/
две разных вещи и приведут к проблемам, соединяющимся локально.
это означает, что экземпляр базы данных не смонтирован, ни не открыт. Выполните команду запуска и посмотрите, появляются ли какие-либо ошибки.
База данных не может быть неактивной и используемой Вашим приложением одновременно. Кажется, что sqlplus сессия должна быть подключена к другому экземпляру, чем приложение. Попытайтесь указать идентификатор подключения в операторе подключения следующим образом:
sqlplus "/@ConnectIdentifier as sysdba"
попробуйте от консоли машины
export ORACLE_SID=your sid here
sqlplus /nolog
startup
Я знаю на окнах существует команда для создания сервиса для запуска экземпляра для Вас, oradmin - новый - sid %ORACLE_SID %-intpwd %oracle_pwd %-startmode A
Случай является значительным на *, отклоняют системы, поэтому удостоверьтесь, что Ваш ORACLE_SID точно соответствует имени экземпляра. В этом случае ORA003 НЕ является тем же как ora003.