:: Архив конференции по VFP до 2005 года
100% загруженности SQL сервера 2000
ViSha®
Автор

Сообщений: 58
Откуда: Днепропетровск
Дата регистрации: 26.09.2003
Доступ к серверу организован через удаленные представления
тип буферизации - 3

CREATE DATABASE p_c+'datajor'
CREATE CONNECTION connect1 CONNSTRING 'dsn=DMPO;server=dmpo;UID='+computer+';PWD='+computer+';DATABASE='+kdatabase
=DBSetProp('CONNECT1', 'Connection', 'Asynchronous', .F.)
=DBSetProp('CONNECT1', 'Connection', 'BatchMode', .T.)
=DBSetProp('CONNECT1', 'Connection', 'Comment', '')
=DBSetProp('CONNECT1', 'Connection', 'DispLogin', 1)
=DBSetProp('CONNECT1', 'Connection', 'ConnectTimeOut', 15)
=DBSetProp('CONNECT1', 'Connection', 'DispWarnings', .F.)
=DBSetProp('CONNECT1', 'Connection', 'IdleTimeOut', 0)
=DBSetProp('CONNECT1', 'Connection', 'QueryTimeOut', 0)
=DBSetProp('CONNECT1', 'Connection', 'Transactions', 1)
CREATE SQL VIEW jornal CONNECTION connect1 ;
AS SELECT * FROM jornal WHERE data>=?kdate1 AND data<=?kdate2
SELECT 0
USE jornal
=CURSORSETPROP('keyFieldList','UNIQ','jornal')
=CURSORSETPROP('SendUpdates',.t.,'jornal')

проблема - при записи из временных таблиц во вьюшку группы записей(порядка 2000), загрузка сервера -100%
как только операция заканчивается- загрузка на уровне 20% (норма)
а если в это же время у другого пользователя запущена похожая программа, то вообще труба
Ratings: 0 negative/0 positive
Re: 100% загруженности SQL сервера 2000
Владимир Максимов

Сообщений: 14093
Откуда: Москва
Дата регистрации: 02.09.2000
При строковой буферизации сброс буфера происходит:

-) При переходе на другую запись
-) При закрытии таблицы
-) При переключении в режим табличной буферизации
-) По команде TableUpdate()

При табличной буферизации сброс буфера происходит

-) Только по команде TableUpdate() и никак иначе

Добавление записей сопровождается автоматическим переходом на новую запись, как следствие - сброс буфера. Отсюда и загрузка.

Т.е. при добавлении 2000 записей произойдет сброс буфера у 1999 записей (кроме последней)




------------------
Ratings: 0 negative/0 positive
Re: 100% загруженности SQL сервера 2000
v09

Сообщений: 85
Дата регистрации: 06.10.2003
Есть необходимость сброса какого количества изменений за один раз? М.б. растянуть во времени?. Я так понял инфа копится\корректируется во временных таблицах а потом разом скидывается во вьюшку?
Ratings: 0 negative/0 positive
Re: 100% загруженности SQL сервера 2000
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, ViSha®!

В дополнение к Владимиру:
Также попробуй менять "BatchUpdateCount" для представления (в сторону
увеличения), использовать ручные транзакции (давать только 1 SQLCOMMIT() по
завершении всех операций), попробовать Prepared = .T. (для MS SQL правда
говорят что-то она плохо работает, а на Oracle почти в 2 раза быстрее
вставка идёт - ну да правда я не через View это делал а прямыми SQLEXEC()
командами, через параметризованную SQL команду).




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: 100% загруженности SQL сервера 2000
ViSha®
Автор

Сообщений: 58
Откуда: Днепропетровск
Дата регистрации: 26.09.2003
через SQLEXEC как раз все без проблем !
проблемы только со вьюхой...
буду переделывать логику !
спасибо за ответы
Ratings: 0 negative/0 positive
Re: 100% загруженности SQL сервера 2000
WiRuc

Сообщений: 1012
Дата регистрации: 09.04.2002
IMHO, все эти RemoteView и CursorAdapter от лукавого и must die.
Вся работа должна вестись через ХП.
Ratings: 0 negative/0 positive
Re: 100% загруженности SQL сервера 2000
Penner

Сообщений: 4102
Откуда: Muenster
Дата регистрации: 26.04.2002
Ты не прав.

Просто НЕ ВЕЗДЕ и НЕ ВСЕГДА их надо втыкать.
Ratings: 0 negative/0 positive
Re: 100% загруженности SQL сервера 2000
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, WiRuc!

Ты считаешь что проще запихать кучу записей в базу именно через ХП? А если
СУБД не умеет XML парсить (или медленно/криво это делает), как ты туда целый
массив загонишь?




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: 100% загруженности SQL сервера 2000
Syberex

Сообщений: 1432
Откуда: Кострома
Дата регистрации: 19.01.2004
Небольшой вопрос, но думаю что по теме и автор не обидится...

Если использовать SQLEXEC() то код надо писать
на языке SQL Фокса или SQL сервера?
Например такое прокатит:
INSERT INTO dbf_name FROM ARRAY ArrayName
если в ArrayName находится 2000 записей




------------------
Ratings: 0 negative/0 positive
Re: 100% загруженности SQL сервера 2000
Перминов Игорь

Сообщений: 1591
Откуда: Красная Орловка
Дата регистрации: 16.09.2001
К сожалению приведенная команда:
Syberex
INSERT INTO dbf_name FROM ARRAY ArrayName
, никакого отношения к T-SQL или классическому SQL не имеет, и естесно SQLEXEC() с данной командой не выполнится.
Данная команда, как раз для VIEW или таблицы.




------------------
Без коментариев..
Ratings: 0 negative/0 positive


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 6 (Гостей: 6)

© 2000-2024 Fox Club 
Яндекс.Метрика