Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Скорость вызова ХП (ASA 9.0.2.3044)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Вот возник такой вопрос. Из ХП в цикле вызываеться функция которая принимает 1 UINT и возвращает тоже UINT(return). Так вот у меня профайлер показывает что время вызова ХП (из цикла) примерно в 30 раз больше чем время выполнения самой ХП. При этом если вызывать не функцию, а процедуры возвращающие набро данных (примерно 15 строковых полей) то все становиться очень плохо. У меня клиент вызывает не большое кол-во процедур, в которых и производиться вся обработка. При этом используеться большое кол-во маленьких процедур, которые инкапсулируют в себе некую операцию логика которой может быть изменена в дальнейшем, а пока реализуеться по средствам одного простого селекта и возвращаемого набора данных. Конечно я могу их все развернуть но как-то мне это не очень охото делать. Может есть способ избежать таких тормозов? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 13:55 |
|
||
|
Скорость вызова ХП (ASA 9.0.2.3044)
|
|||
|---|---|---|---|
|
#18+
moteus wrote: > Так вот у меня профайлер показывает что время вызова ХП (из цикла) > примерно в 30 раз больше чем время выполнения самой ХП. Бред полный. Вызов процедуры из процедуры как таковой не весит практически ничего. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 14:14 |
|
||
|
Скорость вызова ХП (ASA 9.0.2.3044)
|
|||
|---|---|---|---|
|
#18+
Dim2000Бред полный. Вызов процедуры из процедуры как таковой не весит практически ничего. Ваше заявление всиляет надежду. :) Может тогда я чего не понимаю в параметрах профайлера. Он показывает что ______________#Exes.____#msecs. SP_Call 1 176 SP_Test 10000 30 Конечно я понимаю что время вызова(скорее всего) постоянно и увеличивая процедуры можно уменьшить его влияние, но как я сказал у меня имееться большое кол-во маленьких процедур. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 14:33 |
|
||
|
Скорость вызова ХП (ASA 9.0.2.3044)
|
|||
|---|---|---|---|
|
#18+
moteus wrote: > Может тогда я чего не понимаю в параметрах профайлера. > Он показывает что > ______________#Exes.____#msecs. > SP_Call 1 176 > SP_Test 10000 30 А теперь нужно смотреть внутрь Sp_call (я правильно понял, что она гоняет sp_test в цикле?). > Конечно я понимаю что время вызова(скорее всего) постоянно Оно крайне малО: например, я отловил у себя место, где на 41 000 вызовов ХП ушла 41 миллисекунда. А ведь сама ХП тоже не пустая ;). Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 14:43 |
|
||
|
Скорость вызова ХП (ASA 9.0.2.3044)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 14:53 |
|
||
|
Скорость вызова ХП (ASA 9.0.2.3044)
|
|||
|---|---|---|---|
|
#18+
moteus wrote: > При этом профайлер показывает что 100% времени уходит на строку > > set v = DBA."SP_Test"(*123*); А можно полный текст обеих процедур? Кстати, у меня ASA8, но не думаю, что в 9-й версии что-то кардинально хуже. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 15:04 |
|
||
|
Скорость вызова ХП (ASA 9.0.2.3044)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Порезал процедуру под влиянием цензуры. :) В общем остальной код примерно в томже духе плюс еще 2 цикла for и много IF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 15:59 |
|
||
|
Скорость вызова ХП (ASA 9.0.2.3044)
|
|||
|---|---|---|---|
|
#18+
moteus Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Порезал процедуру под влиянием цензуры. :) В общем остальной код примерно в томже духе плюс еще 2 цикла for и много IF. А в этой функции есть какой то скрытый смысл ? Пока я вижу не известно зачем сделанный цикл, который по условию ищет запись, втиснутый в функцию, вместо того, чтобы просто получить это запросом/подзапросом прямо по месту без всяких функций и циклов. P.S. Естественно вызов ХП или функции не влияет на скорость. А вот открытие и закрытие курсора, да еще с изначально полным построением всех записей и перебором до нахождения подходящей, да еще и в функции и подозреваю на каждую запись где то выше - это как раз и есть прямой синоним тормозу от камаза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 16:27 |
|
||
|
Скорость вызова ХП (ASA 9.0.2.3044)
|
|||
|---|---|---|---|
|
#18+
Что-то у меня как-то с математикой или как? Щас запускаю процедуру SP_Call. В Central показывает что отрабатывает в течении 7 с. На вкладке Profile написано 177(мс). На глаз время всего запроса call SP_Call скорее ближе к 7с. В теле SP_Call 100% стоит именно на строке вызова SP_Test. А в теле SP_Test в 4мс. .... Сделал цикл внутри SP_Test;(т.е. заключил все ее тело в цикл) и время в central'e показал 6,89 с. а на вкладке Profile - 5 мс. Из этого я заключил(пока временно), что все дело не в скорости вызова, а в погрешности измерения :). Может надо настроить что-то в БД/СУБД/Централе чтобы было получше, но пока как-то все это мне доверия не внушает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 16:37 |
|
||
|
Скорость вызова ХП (ASA 9.0.2.3044)
|
|||
|---|---|---|---|
|
#18+
ASCRUSА в этой функции есть какой то скрытый смысл ? Пока я вижу не известно зачем сделанный цикл, который по условию ищет запись, втиснутый в функцию, вместо того, чтобы просто получить это запросом/подзапросом прямо по месту без всяких функций и циклов. Я же написал что эта не вся функция. Там внутри цикла в орегинале более сложная логика прописана, и запрос тоже побольше. Да и записей для одного IDList не более 5-6 бывает и то редко, поэтому и не стал замарачиваться . Но все дело в том что профайлер показывает что тормозит иненно вызывающая ф. а не вызываемая (176 мс против 30 мс). и все 176 на вызове. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 16:50 |
|
||
|
|

start [/forum/topic.php?fid=55&fpage=80&tid=2012729]: |
0ms |
get settings: |
13ms |
get forum list: |
26ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
61ms |
get topic data: |
16ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 255ms |
| total: | 448ms |

| 0 / 0 |
