Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Горячая тема (более 10 ответов) Кеширование журналов, а стоит ли? (число прочтений - 9227 )
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Кеширование журналов, а стоит ли?
Ответ #15 - 05. Сентября 2006 :: 13:46
Печать  
что тебе не уточнить? как работать с ТП или механизм "вытягивания нужных данных"?
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
chicago
Senior Member
****
Отсутствует


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Кеширование журналов, а стоит ли?
Ответ #16 - 06. Сентября 2006 :: 05:52
Печать  
Phoenix писал(а) 05. Сентября 2006 :: 13:46:
что тебе не уточнить? как работать с ТП или механизм "вытягивания нужных данных"?


Второе пожалуйста, вот есть код:
Код
Выбрать все
// =================================
Функция ТекЗап()
	ТекЗап = "
	|SELECT

	|CASE
	|	WHEN ЖурДок.Closed & 1 = 1 THEN 1
	|	WHEN ЖурДок.ISMARK = 1 THEN 3
	|	ELSE 0
	|END AS Статус,

	|ЖурДок.DocNo AS НомДок,
	|LEFT(ЖурДок.DATE_TIME_IDDOC, 8) AS ДатДок

	|FROM _1sjourn ЖурДок (nolock)

	|";
	Возврат ТекЗап;
КонецФункции // ТекЗап()

// =================================
Процедура ТабПолПриВыводеСтроки(ТабПол, ОфоСтр, ДанСтр) Экспорт
	КомСта = ОфоСтр.Ячейки.Получить("Статус");
	КомСта.ИндексКартинки = ДанСтр.Статус;
	КомСта.ОтображатьКартинку = 1;
	КомСта.ЦветФона = 13160660;
КонецПроцедуры

// =================================
Процедура ПослеОткрытия()
	РасФор = СоздатьОбъект("РасширениеФормы");
	ЕлУТаП = РасФор.ПолучитьАтрибут("ТабПол").СоздатьЭлементУправления("ТабличноеПоле");

	КарОбє = СоздатьОбъект("Картинка");
	КарОбє.Загрузить("СтанДокументу");
	КарОбє.РежимРисования(1);

	// колонки
	КолТаП = ЕлУТаП.Колонки.Добавить("Статус");
	КолТаП.Данные = "Статус";

	КолТаП.Ширина = 20;
	КолТаП.ИзменениеРазмера = 0;
	КолТаП.УстановитьКартинкиСтрок(КарОбє, 16);

	КолТаП = ЕлУТаП.Колонки.Добавить("НомДок");
	КолТаП.Заголовок = "Номер";
	КолТаП.Данные = "НомДок";

	КолТаП = ЕлУТаП.Колонки.Добавить("ДатДок");
	КолТаП.Заголовок = "Дата";
	КолТаП.Данные = "ДатДок";

	ДжеТаП = СоздатьОбъект("ODBCDataProvider.MSSQL");
	ДжеТаП.БазаДанных = СоздатьОбъект("ODBCDatabase");
	ДжеТаП.УстТекстЗапроса(ТекЗап());

	// поля
	ПолТаП = ДжеТаП.Поля.Добавить("Статус");
	ПолТаП.АвтоУдаление = 0;

	ПолТаП = ДжеТаП.Поля.Добавить("НомДок");
	ПолТаП.ТипБыстрогоПоиска = 1;
	ПолТаП.АвтоУдаление = 0;

    ДжеТаП.УстИДПоле("НомДок");
	ДжеТаП.УстКлючПорядка("НомДок");

	ЕлУТаП.ТаймаутОбновления = 3;
	ЕлУТаП.РежимВыделенияСтроки = 1;
	ЕлУТаП.ПоставщикДанных = ДжеТаП;
	ЕлУТаП.ОбновитьСтроки();
КонецПроцедуры 



Вроде все по книжке сделано, ничего лишенго. Открывается (первый раз) быстро, но при навигации по журналу, ввер-вниз. СКЛ сервер загружен под завязку. Пробовал и с ЕлУТаП.ТаймаутОбновления = 300, та же ситуация, поясните для "тупого в чем его тупость". Смущённый
Не думаю что оно так должно работать "не быстро".
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Кеширование журналов, а стоит ли?
Ответ #17 - 06. Сентября 2006 :: 06:06
Печать  
chicago писал(а) 06. Сентября 2006 :: 05:52:
Вроде все по книжке сделано, ничего лишенго. Открывается (первый раз) быстро, но при навигации по журналу, ввер-вниз. СКЛ сервер загружен под завязку. Пробовал и с ЕлУТаП.ТаймаутОбновления = 300, та же ситуация, поясните для "тупого в чем его тупость". Смущённый
Не думаю что оно так должно работать "не быстро".

элементарно.
Указывая в качестве ключа порядка docno - ты не попадаешь ни в однин из индексов для таблица _1sjourn
А несчастный сервер должен-таки обеспечить порядок номеров
это первое.
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Кеширование журналов, а стоит ли?
Ответ #18 - 06. Сентября 2006 :: 06:09
Печать  
второе:
указывая в качестве ключа только docno, ты фактически не обеспечиваешь уникальность этого ключа, тем самым грубо нарушаешь одно из правил пользования ТП. Это не связано с быстродействием, но может приводить вообще к аварийному завершению программы.
  

1&&2&&3
Наверх
 
IP записан
 
chicago
Senior Member
****
Отсутствует


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Кеширование журналов, а стоит ли?
Ответ #19 - 06. Сентября 2006 :: 06:57
Печать  
trad писал(а) 06. Сентября 2006 :: 06:06:
chicago писал(а) 06. Сентября 2006 :: 05:52:
Вроде все по книжке сделано, ничего лишенго. Открывается (первый раз) быстро, но при навигации по журналу, ввер-вниз. СКЛ сервер загружен под завязку. Пробовал и с ЕлУТаП.ТаймаутОбновления = 300, та же ситуация, поясните для "тупого в чем его тупость". Смущённый
Не думаю что оно так должно работать "не быстро".

элементарно.
Указывая в качестве ключа порядка docno - ты не попадаешь ни в однин из индексов для таблица _1sjourn
А несчастный сервер должен-таки обеспечить порядок номеров
это первое.


Ок, сделал:
Код
Выбрать все
    ДжеТаП.УстИДПоле("DATE_TIME_IDDOC");
	ДжеТаП.УстКлючПорядка("DATE_TIME_IDDOC");
 


реузультат превзошол ожидания.
  
Наверх
ICQ  
IP записан
 
chicago
Senior Member
****
Отсутствует


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Кеширование журналов, а стоит ли?
Ответ #20 - 06. Сентября 2006 :: 06:58
Печать  
trad писал(а) 06. Сентября 2006 :: 06:09:
второе:
указывая в качестве ключа только docno, ты фактически не обеспечиваешь уникальность этого ключа, тем самым грубо нарушаешь одно из правил пользования ТП. Это не связано с быстродействием, но может приводить вообще к аварийному завершению программы.


Кроме "DATE_TIME_IDDOC", чем еще можно "помочь" серверу?
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать