![]() |
|
Модераторы: LSD |
![]()
|
|
| WolfON |
|
|||
|
Unregistered |
Нужны слветы по сабжу.
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Oracle писал, что производительность хранимых процедур написанных на Java по сравнению с процедурами PL/SQL, при использовании SQL запросов выше на 30-40%, без в 10-12 раз. Есть еще вариант с использованием процедур написанных на Си.
Но если основное время занимают SQL запросы, то надо оптимизировать в первую очередь их. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 1 Всего: 64 |
Ты скрипт то покажи. Может ты написал неэффективный код.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| WolfON |
|
|||
|
Unregistered |
DECLARE
CURSOR c_oper (x NUMBER) IS SELECT log_id, user_id, object_code, operation_code, operation_date, pkey FROM log_operations WHERE log_id = x; v_c_oper c_oper%ROWTYPE; CURSOR c_field (x NUMBER) IS SELECT field, old_value, new_value FROM log_fields WHERE log_id = x ORDER BY log_field_id; v_c_temp c_field%ROWTYPE; BEGIN <<main_loop>> FOR c_log IN (SELECT log_id, user_id, date_chg, operation_code, object_code, data_id, chgs FROM loggin WHERE ROWNUM < 101) LOOP OPEN c_oper (c_log.log_id); OPEN c_field (c_log.log_id); FETCH c_oper INTO v_c_oper; <<nested_table_loop>> FOR cntr IN 1 .. c_log.chgs.LAST LOOP FETCH c_field INTO v_c_temp; IF c_log.chgs (cntr).field_name != v_c_temp.field OR c_log.chgs (cntr).old_value != v_c_temp.old_value OR c_log.chgs (cntr).new_value != v_c_temp.new_value THEN INSERT INTO err_log VALUES ( 'Error in nested table. Log_id: ' || TO_CHAR (c_log.log_id) || ' | ' || v_c_temp.field || ',' || v_c_temp.old_value || ',' || v_c_temp.new_value || ' | ' || c_log.chgs (cntr).field_name || ',' || c_log.chgs (cntr).old_value || ',' || c_log.chgs (cntr).new_value ); EXIT nested_table_loop; END IF; END LOOP nested_table_loop; IF v_c_oper.user_id != c_log.user_id OR v_c_oper.object_code != c_log.object_code OR v_c_oper.operation_code != c_log.operation_code OR v_c_oper.operation_date != c_log.date_chg OR v_c_oper.pkey != c_log.data_id THEN INSERT INTO err_log VALUES ( 'Error in main table. Log_id: ' || TO_CHAR (c_log.log_id) ); EXIT main_loop; END IF; CLOSE c_oper; CLOSE c_field; END LOOP main_loop; COMMIT; END; / |
|||
|
||||
![]()
|
| Правила форума "Oracle" | |
|
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Oracle | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |