powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / exec( ) in ASE vs. sp_executesql (SQL Server)
8 сообщений из 8, страница 1 из 1
exec( ) in ASE vs. sp_executesql (SQL Server)
    #34007291
Фотография Сашко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте,

Есть у меня база на 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, чтобы максимально увеличить быстродействие базы данных, а специфика задачи такова, что в алгоритме запись в исходные таблицы происходит редко, гораздо чаще данные читаются. При этом, как я понимаю, нужно уменьшить количество чтений с жесткого диска. Можно, конечно, почитать про индексы в документации, но сроки поджимают, и в настройке баз данных я не силен...

Заранее спасибо за советы!
...
Рейтинг: 0 / 0
exec( ) in ASE vs. sp_executesql (SQL Server)
    #34007317
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СашкоЗдравствуйте,

Есть у меня база на 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
...
Рейтинг: 0 / 0
exec( ) in ASE vs. sp_executesql (SQL Server)
    #34007321
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ еще это:
sp_cacheconfig
...
Рейтинг: 0 / 0
exec( ) in ASE vs. sp_executesql (SQL Server)
    #34013125
Фотография Сашко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, не конфигурилась, не умею:)

Вот дополнительная информация:

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.
Group: Memory Use						
 						
Parameter Name	Default	Memory Used	Config Value	Run Value	Unit	Type
additional network memory	          0	          0	          0	          0	bytes	dynamic
allocate max shared memory	          0	          0	          0	          0	switch	dynamic
allow resource limits	          0	         #4	          0	          0	switch	static
audit queue size	        100	          2	        100	        100	number	dynamic
average cap size	        200	          0	        200	        200	bytes	static
caps per ccb	         50	          0	         50	         50	number	static
deadlock pipe max messages	          0	          0	          0	          0	number	dynamic
default network packet size	        512	       #136	        512	        512	bytes	static
disk i/o structures	        256	         38	        256	        256	number	dynamic
dynamic allocation on demand	          1	          0	          1	          1	switch	dynamic
enable rep agent threads	          0	          0	          0	          0	switch	dynamic
errorlog pipe max messages	          0	          0	          0	          0	number	dynamic
event buffers per engine	        100	        #10	        100	        100	number	static
executable codesize + overhead	          0	     677642	          0	     677642	kilobytes	
heap memory per user	       4096	          0	       4096	       4096	bytes	dynamic
lock hashtable size	       2048	         51	       2048	       2048	bytes	static
lock spinlock ratio	         85	          0	         85	         85	ratio	static
max memory	      23552	      47104	      23552	      23552	memory pages(2k)	dynamic
max number network listeners	          5	       4427	          5	          5	number	static
max online engines	          1	      97354	          1	          1	number	static
max SQL text monitored	          0	          4	          0	          0	bytes	static
memory per worker process	       1024	          4	       1024	       1024	bytes	dynamic
number of alarms	         40	          4	         40	         40	number	dynamic
number of aux scan descriptors	        200	       #206	        200	        200	number	dynamic
number of ccbs	          0	          0	          0	          0	number	static
number of devices	         10	         #8	         10	         10	number	dynamic
number of dtx participants	        500	        146	        500	        500	number	dynamic
number of java sockets	          0	          0	          0	          0	number	dynamic
number of large i/o buffers	          6	        126	          6	          6	number	dynamic
number of locks	       5000	        752	       5000	       5000	number	dynamic
number of mailboxes	         30	          6	         30	         30	number	dynamic
number of messages	         64	          6	         64	         64	number	dynamic
number of open databases	         12	       1370	         12	         12	number	dynamic
number of open indexes	        500	        582	        500	        500	number	dynamic
number of open objects	        500	        663	        500	        500	number	dynamic
number of remote connections	         20	         33	         20	         20	number	static
number of remote logins	         20	         22	         20	         20	number	static
number of remote sites	         10	        956	         10	         10	number	static
number of user connections	         25	       2384	         25	         25	number	dynamic
number of worker processes	          0	          0	          0	          0	number	dynamic
open index hash spinlock ratio	        100	          0	        100	        100	ratio	dynamic
open index spinlock ratio	        100	          0	        100	        100	ratio	dynamic
partition groups	       1024	        860	       1024	       1024	number	dynamic
partition spinlock ratio	         10	          0	         10	         10	ratio	dynamic
permission cache entries	         15	       #164	         15	         15	number	dynamic
plan text pipe max messages	          0	          0	          0	          0	number	dynamic
procedure cache size	       3271	       6902	       3271	       3271	memory pages(2k)	dynamic
process wait events	          0	          0	          0	          0	switch	dynamic
remote server pre-read packets	          3	        #32	          3	          3	number	static
size of global fixed heap	        150	          0	        150	        150	memory pages(2k)	dynamic
size of process object heap	       1500	         76	       1500	       1500	memory pages(2k)	dynamic
size of shared class heap	       1536	          0	       1536	       1536	memory pages(2k)	dynamic
size of unilib cache	          0	        120	          0	          0	bytes	dynamic
sql text pipe max messages	          0	          0	          0	          0	number	dynamic
stack guard size	      16384	      #1200	      16384	      16384	bytes	static
stack size	      41984	      #3075	      41984	      41984	bytes	static
statement pipe max messages	          0	          0	          0	          0	number	dynamic
total data cache size	          0	       8722	          0	       8722	kilobytes	
total logical memory	      23552	      33712	      16856	      16856	memory pages(2k)	read-only
total physical memory	          0	      32688	          0	      16344	memory pages(2k)	read-only
txn to pss ratio	         16	        694	         16	         16	number	dynamic
user log cache size	       2048	          0	       2048	       2048	bytes	static
user log cache spinlock ratio	         20	          0	         20	         20	ratio	dynamic
wait event timing	          0	          0	          0	          0	switch	dynamic

sp_cacheconfig:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Cache Name	Status	Type	Config Value	Run Value
default data cache	Active	Default	     0.00 Mb	     8.00 Mb
                                                   ------------ ------------				
                                            Total       0.00 Mb      8.00 Mb   				
==========================================================================				
Cache: default data cache,   Status: Active,   Type: Default				
      Config Size: 0.00 Mb,   Run Size: 8.00 Mb				
      Config Replacement: strict LRU,   Run Replacement: strict LRU				
      Config Partition:            1,   Run Partition:            1				
				
IO Size	Wash Size	Config Size	Run Size	APF Percent
    2 Kb	  1638 Kb	     0.00 Mb	     8.00 Mb	    10

Заранее спасибо за помощь.
...
Рейтинг: 0 / 0
exec( ) in ASE vs. sp_executesql (SQL Server)
    #34013877
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо смотреть на планы запросов, а если с ними все хорошо, то на конфигурацию. Вот сразу по кэшу -- если база большая, и памяти много, то 8M на кэш явно маловато. Других кэшей , как я понимаю, ведь нет ?
...
Рейтинг: 0 / 0
exec( ) in ASE vs. sp_executesql (SQL Server)
    #34013929
Фотография Сашко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное...

Увеличил размер кеша - не помогло. А запросов у меня больше сотни...эх.

Просто подумал, почему так может быть - база данных идентичная, настройки дефолтные, а производительность ASE в 4 раза меньше чем SQL Server 2000.
...
Рейтинг: 0 / 0
exec( ) in ASE vs. sp_executesql (SQL Server)
    #34014159
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дефолтные настройки ASE не обязаны совпадать с дефолтными настройками MSSQLServer, да ? Да и вообще у них архитектуры уже разные, все другое, по разному они работают.
...
Рейтинг: 0 / 0
exec( ) in ASE vs. sp_executesql (SQL Server)
    #34016923
Фотография Сашко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да уж...

Увеличил "heap memory per user", производительность стала приближаться к SQL Server, но все равно немного медленнее...Все дело в настройках...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / exec( ) in ASE vs. sp_executesql (SQL Server)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]