Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Как оптимизировать базу. Вывод элементов (число прочтений - 1851 )
admin spb
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 150
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Как оптимизировать базу. Вывод элементов
23. Марта 2010 :: 09:56
Печать  
Добрый день.
Моя база работает медленно. Подскажите, как можно ускорить?

Я все время при открытии делаю SQLLife запрос к базе и заполняю ТаблицуЗначений, потом вывожу все в ТабличноеПоле.

Вот примерно такой запрос:
Код
Выбрать все
База = СоздатьОбъект("SQLiteBase");
База.Открыть(":memory:");
Запрос = база.НовыйЗапрос();
  Запрос.ВыполнитьЗапрос("SELECT
		 |"+ глЗапросSELECT + "
		 |FROM  Справочник_Работы AS Спр WHERE Спр.Готовность = 'В работе'
		 |order by CODE desc",ТабВРаботе);

 



Дело в том что каждый раз, заполнять таблицу значения, нет смысла. Может можно как то добавить или изменить только те элементы которых нет в таблице или изменились?

Слышал про Индексированную Таблицу, - а как пользоваться, я так и не разбирался. Если есть примеры, дайте посмотреть.

Подскажите пожалуйста, как лучше мне поступить?
Спасибо. Константин.
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Как оптимизировать базу. Вывод элементов
Ответ #1 - 23. Марта 2010 :: 10:08
Печать  
Используй класс ПоставщикДанных.
  
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Как оптимизировать базу. Вывод элементов
Ответ #2 - 23. Марта 2010 :: 10:48
Печать  
Добавлю от себятинки, код для твоей задачки:

Код
Выбрать все
ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
ПоставщикДанных.ТипЗначений = "Справочник.Работы";
ПоставщикДанных.КонтейнерТабличногоПоля = "ИдентификаторКнопкиКонтейнераТП";
ПоставщикДанных.КонтейнерКоманднойПанели = "ИдентификаторКнопкиКонтейнераКП"; // это если командная панель с кнопками нужна

//ДанныеСправочник//:ПоставщикДанных.Справочник
//ТабличноеПоле//:ПоставщикДанных.ТабличноеПоле

// добавляем колонки
ДанныеСправочник = ПоставщикДанных.Данные;
ДанныеСправочник.НоваяКолонка("Код");
ДанныеСправочник.НоваяКолонка("Наименование");

// заполним стандартными кнопками командную панель
ДанныеСправочник.СоздатьКнопкиПоУмолчанию();

// установим отбор по признаку "В работе"
ОтборГотовность = ДанныеСправочник.Отбор.Готовность;
ОтборГотовность.Использование = 1;
ОтборГотовность.ИзменятьИспользование = 0; // чтобы пользователи культяпками не лазили
ОтборГотовность.ВидСравнения = "Равно";
ОтборГотовность.Значение = "В работе";

// сортировка по коду
ДанныеСправочник.РеквизитСортировки = "Код";

// получим ЭУ табличное поле
ТабличноеПоле = ДанныеСправочник.ТабличноеПоле;

// настроим внешний вид табличного поля
ТабличноеПоле.СтильЗаголовка = 1;
ТабличноеПоле.СтильРамки = 1;
ТабличноеПоле.ВосстановитьПозициюКолонок();

// обновляем чтобы учесть внесенные изменения
ПоставщикДанных.Обновить(); 



Писал на память, могут быть мелкие ошибки.  Подмигивание
Пы.сы. это лишь начало, глянешь глубже обнаружишь множество хороших полезных атрибутов, методов и настроек.
Пы.пы.сы. обнаружил что у тебя сортировка кода по убыванию. А вот поставщик всегда сортирует по возрастанию. В принципе не страшно наверное Улыбка
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
admin spb
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 150
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: Как оптимизировать базу. Вывод элементов
Ответ #3 - 23. Марта 2010 :: 14:29
Печать  
спасибо.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать