29.09.2006, 17:26 | #1 |
----------------
|
Axapta + Oracle + FIRST_ROWS = проблемы
Есть Акспта 3.0SP3 + Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
Для тестирования взял 2 запросика из 1 формы, с фильтром и без Код: static void Job127(Args _args) { UserConnection con = new UserConnection(); Statement stat = con.createStatement(); CustInvoice4PaymJour_RU paymJour; CustInvoice4PaymSalesLink_RU salesLink; ; //stat.executeUpdate("ALTER SESSION SET query_rewrite_enabled=true"); //stat.executeUpdate("ALTER SESSION SET query_rewrite_enabled=false"); //stat.executeUpdate("ALTER SESSION SET NLS_SORT='RUSSIAN'"); stat.executeUpdate("ALTER SESSION SET NLS_SORT='BINARY'"); //stat.executeUpdate("ALTER SESSION SET NLS_COMP=ANSI"); stat.executeUpdate("ALTER SESSION SET NLS_COMP='BINARY'"); paymJour.setConnection(con); salesLink.setConnection(con); select firstfast paymJour order by Invoice4PaymId, Invoice4PaymDate join salesLink where salesLink.Invoice4PaymId == paymJour.Invoice4PaymId && salesLink.Invoice4PaymDate == paymJour.Invoice4PaymDate && salesLink.SalesId == paymJour.SalesId && salesLink.OrigSalesId == "0099556"; select firstfast paymJour order by Invoice4PaymId, Invoice4PaymDate join salesLink where salesLink.Invoice4PaymId == paymJour.Invoice4PaymId && salesLink.Invoice4PaymDate == paymJour.Invoice4PaymDate && salesLink.SalesId == paymJour.SalesId; } первого 6,5 сек (получаем всего 1 запись) второго 0,1 сек (получаем первую запись) После изменения настроек Код: stat.executeUpdate("ALTER SESSION SET NLS_SORT='RUSSIAN'"); //stat.executeUpdate("ALTER SESSION SET NLS_SORT='BINARY'"); первого 0,1 сек (получаем всего 1 запись) второго 5,5 сек (получаем первую запись) Очень хочется, чтобы оба запроса быстро выполнялись Есть какие-нибудь мысли, куда смотреть? (нанять опытного DBA не предлагать плиз) P.S. NLS_SORT='BINARY' - прописано в ktd-файле, так что при большом желании можно поменять раз и навсегда |
|