Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
exec( ) in ASE vs. sp_executesql (SQL Server)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Есть у меня база на SQL Server 2000. В этой базе выполняется набор логических контролей, которые организованы следующим образом: есть таблица в базе данных, в которой хранятся SQL запросы, выводящие ошибочные данные (в 'where' проверяется соотношение тех или иных полей таблиц). Есть хранимая процедура, которая в цикле (цикл реализован с использованием временной таблицы, без курсора) по активным контролям, считывает соответствующий SQL запрос, и выполняет его процедурой sp_executesql (как я понял, это более быстрый вариант чем exec() SQL Server). В итоге, процедура выполняется на небольшом объеме тестовых данных приблизительно за 2 секунды. На той же локальной машине (Windows XP) установлен ASE 12.5. И я перевожу базу с SQL Server на ASE. Структура базы и данные идентичны. И процедура которая выполняет проверки тоже, за исключением, что используется exec( ) вместо sp_executesql. Но процедура выполняется в среднем секунд 7-10 секунд. SQL Server настроен, можно сказать, по дефолту, ASE аналогично. Индексы одинаковые. Почему же тогда ASE выполняется так медленно. Может, нужно тогда реализовать контроли в виде процедур, в каждой из которых будет выполняется контрольный запрос, и в результате будет увеличение производительности? Я бы попробовал, но этих контолей свыше сотни - много работы. И второй вопрос, как можно настроить индексы в ASE 12.5, чтобы максимально увеличить быстродействие базы данных, а специфика задачи такова, что в алгоритме запись в исходные таблицы происходит редко, гораздо чаще данные читаются. При этом, как я понимаю, нужно уменьшить количество чтений с жесткого диска. Можно, конечно, почитать про индексы в документации, но сроки поджимают, и в настройке баз данных я не силен... Заранее спасибо за советы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2006, 19:14 |
|
||
|
exec( ) in ASE vs. sp_executesql (SQL Server)
|
|||
|---|---|---|---|
|
#18+
СашкоЗдравствуйте, Есть у меня база на SQL Server 2000. В этой базе выполняется набор логических контролей, которые организованы следующим образом: есть таблица в базе данных, в которой хранятся SQL запросы, выводящие ошибочные данные (в 'where' проверяется соотношение тех или иных полей таблиц). Есть хранимая процедура, которая в цикле (цикл реализован с использованием временной таблицы, без курсора) по активным контролям, считывает соответствующий SQL запрос, и выполняет его процедурой sp_executesql (как я понял, это более быстрый вариант чем exec() SQL Server). В итоге, процедура выполняется на небольшом объеме тестовых данных приблизительно за 2 секунды. На той же локальной машине (Windows XP) установлен ASE 12.5. И я перевожу базу с SQL Server на ASE. Структура базы и данные идентичны. И процедура которая выполняет проверки тоже, за исключением, что используется exec( ) вместо sp_executesql. Но процедура выполняется в среднем секунд 7-10 секунд. SQL Server настроен, можно сказать, по дефолту, ASE аналогично. Индексы одинаковые. Почему же тогда ASE выполняется так медленно. Может, нужно тогда реализовать контроли в виде процедур, в каждой из которых будет выполняется контрольный запрос, и в результате будет увеличение производительности? Я бы попробовал, но этих контолей свыше сотни - много работы. И второй вопрос, как можно настроить индексы в ASE 12.5, чтобы максимально увеличить быстродействие базы данных, а специфика задачи такова, что в алгоритме запись в исходные таблицы происходит редко, гораздо чаще данные читаются. При этом, как я понимаю, нужно уменьшить количество чтений с жесткого диска. Можно, конечно, почитать про индексы в документации, но сроки поджимают, и в настройке баз данных я не силен... Заранее спасибо за советы! ;) сдается мне, что память не конфигурилась пришли плз вывод sp_configure ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2006, 19:41 |
|
||
|
exec( ) in ASE vs. sp_executesql (SQL Server)
|
|||
|---|---|---|---|
|
#18+
+ еще это: sp_cacheconfig ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2006, 19:43 |
|
||
|
exec( ) in ASE vs. sp_executesql (SQL Server)
|
|||
|---|---|---|---|
|
#18+
Нет, не конфигурилась, не умею:) Вот дополнительная информация: sp_configure "Memory Use": Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. sp_cacheconfig: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Заранее спасибо за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 15:54 |
|
||
|
exec( ) in ASE vs. sp_executesql (SQL Server)
|
|||
|---|---|---|---|
|
#18+
Надо смотреть на планы запросов, а если с ними все хорошо, то на конфигурацию. Вот сразу по кэшу -- если база большая, и памяти много, то 8M на кэш явно маловато. Других кэшей , как я понимаю, ведь нет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 19:50 |
|
||
|
exec( ) in ASE vs. sp_executesql (SQL Server)
|
|||
|---|---|---|---|
|
#18+
Наверное... Увеличил размер кеша - не помогло. А запросов у меня больше сотни...эх. Просто подумал, почему так может быть - база данных идентичная, настройки дефолтные, а производительность ASE в 4 раза меньше чем SQL Server 2000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 20:29 |
|
||
|
exec( ) in ASE vs. sp_executesql (SQL Server)
|
|||
|---|---|---|---|
|
#18+
Дефолтные настройки ASE не обязаны совпадать с дефолтными настройками MSSQLServer, да ? Да и вообще у них архитектуры уже разные, все другое, по разному они работают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 00:32 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=34014159&tid=2012556]: |
0ms |
get settings: |
7ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 356ms |

| 0 / 0 |
