Переключение на Главную Страницу Страницы: 1 2 3 [4] 5  ОтправитьПечать
Очень популярная тема (более 25 ответов) Запрос из таблицы значений (число прочтений - 13030 )
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #45 - 11. Марта 2010 :: 09:08
Печать  
Спасибо! Всё получилось!
Вот ещё хочу вам один вопрос задать.
Всё вот это с перекладыванием таблиц в sql затеял для того, чтобы увеличить скорость получения данных(используется обработка заказов поставщику, в которой менеджеры хотят видеть: продажи за месяц; текущие остатки, цены и нормы по магазинам; продажи, сезонность, план продаж по месяцам за год, цены прайсов от поставщиков) некоторые данные получаю прямыми запросами, другие берутся из предварительно рассчитанных dbf таблиц по каждой позиции номенклатуры в табличном поле. За счет получения большого объема данных при "листании" позиций происходит замедление прорисовки ТП.
Так вот, хотел увеличить скорость получения данных за счет получения данных из базы SQL вместо dbf. Когда всё сделал, то замер производительности показал, что метод "ВыполнитьИнструкцию()" работает в 10 раз медленнее, чем
Код
Выбрать все
ДБФ.ОткрытьФайл(...);
ДБФ.Ключ....
ДБФ.НайтиПоКлючу()
 


Текст запроса элементарный:
Код
Выбрать все
 select *
 from uz..Osn_
 Where
 (Kod = '202230202')
 


Так и должно быть? Получение данных из dbf "быстрее", чем получение данных из sql?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #46 - 11. Марта 2010 :: 09:11
Печать  
индекс по полю Kod есть?

ps
в десять раз медленне работать не должно, но и что будет быстрее тоже - не факт
  

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #47 - 11. Марта 2010 :: 09:46
Печать  
trad писал(а) 11. Марта 2010 :: 09:11:
индекс по полю Kod есть?

ps
в десять раз медленне работать не должно, но и что будет быстрее тоже - не факт

Текст запроса укладки таблицы в sql:
Код
Выбрать все
use uz
set nocount on
if exists (select * from uz..sysobjects where id=object_id('uz..Osn_') and sysstat & 0xf = 3 )
  drop table uz..Osn_;
create table Osn_ (KOD char(9) PRIMARY KEY , MANAGER char(25), CITY char(20), POST char(9), SROK numeric(3,0), ABC char(9), XYZ char(9), OST numeric(15,3), DIN numeric(15,4), SZ numeric(15,2), RN numeric(15,0), MIN numeric(15,3), MAX numeric(15,3), DATE char(8), DOP numeric(15,2)/*,*//*column_definition*/)
set nocount off 


PRIMARY KEY - как я понимаю это будет индексом и за счет него должна увеличиться производительность?
Поиск по индексу осуществляется так же условием или как-то по-другому?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #48 - 11. Марта 2010 :: 10:09
Печать  
1) да.
2) в данном случае так же.
  

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #49 - 11. Марта 2010 :: 10:13
Печать  
С индексом ускорилось, но всё равно в два раза медленнее, чем получение тех же данных из dbf. Печаль
Подумаю над оптимизацией остальных запросов...
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #50 - 11. Марта 2010 :: 10:23
Печать  
al_zzz писал(а) 11. Марта 2010 :: 10:13:
С индексом ускорилось, но всё равно в два раза медленнее, чем получение тех же данных из dbf. Печаль
вот это более реально
  

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #51 - 11. Марта 2010 :: 11:53
Печать  
вместо RN numeric(15,0)  можно использовать int
аналогично numeric(3,0)
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #52 - 11. Марта 2010 :: 11:55
Печать  
зачем таблицу заводить в другой бд ?
в твоем случае будет гораздо лучше создать таблицу в "родной" бд.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #53 - 11. Марта 2010 :: 11:55
Печать  
al_zzz писал(а) 11. Марта 2010 :: 10:13:
С индексом ускорилось, но всё равно в два раза медленнее, чем получение тех же данных из dbf. Печаль
Подумаю над оптимизацией остальных запросов...

хоть запрос и примитивный все равно лучше покажи запрос полностью.
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #54 - 11. Марта 2010 :: 11:56
Печать  
Z1 писал(а) 11. Марта 2010 :: 11:55:
зачем таблицу заводить в другой бд ?
в твоем случае будет гораздо лучше создать таблицу в "родной" бд.

А вреда никакого от этого не будет?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #55 - 11. Марта 2010 :: 11:57
Печать  
Z1 писал(а) 11. Марта 2010 :: 11:55:
al_zzz писал(а) 11. Марта 2010 :: 10:13:
С индексом ускорилось, но всё равно в два раза медленнее, чем получение тех же данных из dbf. Печаль
Подумаю над оптимизацией остальных запросов...

хоть запрос и примитивный все равно лучше покажи запрос полностью.

В Ответ #45  приведен запрос полностью
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #56 - 11. Марта 2010 :: 12:00
Печать  
al_zzz писал(а) 11. Марта 2010 :: 11:57:
Z1 писал(а) 11. Марта 2010 :: 11:55:
al_zzz писал(а) 11. Марта 2010 :: 10:13:
С индексом ускорилось, но всё равно в два раза медленнее, чем получение тех же данных из dbf. Печаль
Подумаю над оптимизацией остальных запросов...

хоть запрос и примитивный все равно лучше покажи запрос полностью.

В Ответ #45  приведен запрос полностью


добавь  хинт (nolock)

Разве тебе не нужна типизация результата ?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #57 - 11. Марта 2010 :: 12:02
Печать  
al_zzz писал(а) 11. Марта 2010 :: 11:56:
Z1 писал(а) 11. Марта 2010 :: 11:55:
зачем таблицу заводить в другой бд ?
в твоем случае будет гораздо лучше создать таблицу в "родной" бд.

А вреда никакого от этого не будет?

Я использую. Вреда нет.
Чужие таблицы 1с не трогает.
При добавление(удалении) полей 1с создает временные таблицы в родной бд но имена их экзотические вряд ли ты их так назовешь.
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #58 - 11. Марта 2010 :: 12:03
Печать  
Цитата:
Разве тебе не нужна типизация результата ?

Нет, не нужна
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #59 - 11. Марта 2010 :: 12:07
Печать  
Z1 писал(а) 11. Марта 2010 :: 11:55:
зачем таблицу заводить в другой бд ?
в твоем случае будет гораздо лучше создать таблицу в "родной" бд.

А от создания в родной скорость получения данных вырастет?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 3 [4] 5 
ОтправитьПечать