Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) DBF: прямой запрос медленнее чем 1с запрос (число прочтений - 5064 )
Naked
YaBB Newbies
*
Отсутствует



Сообщений: 8
Местоположение: Черногорск
Зарегистрирован: 21. Ноября 2011
Пол: Мужской
DBF: прямой запрос медленнее чем 1с запрос
21. Ноября 2011 :: 11:16
Печать  
ситуация следующая, есть комп с ОС Win7,база дбф 7,7 тис 847. поставил компоненту 1спп, установил драйвер фокса, написал простенький прямой запрос к партиям товаров, оказалось формирует дольше чем запрос 1с. написал другой к тому же регистру - аналогично. почитал про оптимизацию регистров, выставил нужные значения, оставил в запросе только один начальный остаток на дату по одному контрагенту и одной фирме. - и все равно дольше чем 1с запрос почти в 3 раза!
около недели смотрю различные FAQ, форумные темы, но не смог найти ответов на вопросы по прямым запросам:
1) есть ли ограничения, или ошибки при использовании на разных ОС(конкретно интересны Win7, W2003, WXPsp3) одной ДБФ(через OLEDBData) базы единовременно\раздельно?
2) как размер файла может повлиять на время формирования отчета? файл RG1130 - итоги регистра партий = 1,12 Гб (это много???)
зы: я новичок, не судите строго если что.
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: DBF: прямой запрос медленнее чем 1с запрос
Ответ #1 - 21. Ноября 2011 :: 12:01
Печать  
   Пиши запрос правильно.
Все ответы, как писать правильно, использую фоксовый провайдер, смотри тут:
http://www.1cpp.ru/forum/YaBB.pl?num=1184317705

Если не хочешь морочится с написанием "правильных" запросов для фокса, смотри в сторону 1sqlite - там и синтаксис попроще, и он сам подбирает нужный индекс для запроса. Но фокс шустрее на некоторых типах запроса.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: DBF: прямой запрос медленнее чем 1с запрос
Ответ #2 - 21. Ноября 2011 :: 12:08
Печать  
Naked писал(а) 21. Ноября 2011 :: 11:16:
1) есть ли ограничения, или ошибки при использовании на разных ОС(конкретно интересны Win7, W2003, WXPsp3) одной ДБФ(через OLEDBData) базы единовременно\раздельно?
2) как размер файла может повлиять на время формирования отчета? файл RG1130 - итоги регистра партий = 1,12 Гб (это много???)
.


1. Ограничений нет. "Штатно", прямой запрос на фоксовом провайдере не работает в монопольном режиме. Это лечится заплаткой от hogik (смотри на нимфостарте)
2. RG1130  = 1,12 Г, и поди RA1130 - не больше пары десятков метров ? Улыбка)
Это только свидетельство незакрытого регистра. Лечите базу.
А так, файло итогов больше гига  - без другой заплатки от Hogik, в штатных запросах будете иметь всегда "радугу" - там идёт ошибка по чтению из такого файла, отчеты штатные будут каждый раз выдавать разные результаты.

Смотрите, по какому измерению не закрывается регистр и ..либо свертка, либо избавление от лишней аналитики, либо (что правильно) анализ причин незакрытия и правка модулей проведения(или учета)
  
Наверх
 
IP записан
 
Naked
YaBB Newbies
*
Отсутствует



Сообщений: 8
Местоположение: Черногорск
Зарегистрирован: 21. Ноября 2011
Пол: Мужской
Re: DBF: прямой запрос медленнее чем 1с запрос
Ответ #3 - 21. Ноября 2011 :: 14:08
Печать  
запросы писать не проблема, пишу думаю правильно, потому как уже перечитал много тем форума, в том числе ту что про индексы.
разные данные в отчетах - это и есть радуга???=)
такая мерзость началась с недельку назад, но пока ничего не правилось. Свертку делать узеры не желают, база свернута на 31.12.08, быть может все таки уговорю.
Сама база пухлая, табличные части расхнакл перевалили за 2 гб и остановились, пришлось переносить табл части в резервный документ... а файлы рг и ра не особо по размерам отличаются, но щас не готов сказать сколько точно в граммах.
Будем приступать к лечению.
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: DBF: прямой запрос медленнее чем 1с запрос
Ответ #4 - 21. Ноября 2011 :: 14:21
Печать  
Ну, нам отсюда не видно твой текст запроса, это раз, не видно размер таблички движений этого регистра, это два.
А так, грамотный прямой запрос всегда быстрее штатных методов работы с регистром.
  
Наверх
 
IP записан
 
Naked
YaBB Newbies
*
Отсутствует



Сообщений: 8
Местоположение: Черногорск
Зарегистрирован: 21. Ноября 2011
Пол: Мужской
Re: DBF: прямой запрос медленнее чем 1с запрос
Ответ #5 - 21. Ноября 2011 :: 14:26
Печать  
(2)(3) спасибо большое за ответы.
(5) приведу пример завтра, уже более подробно поговорим. на сегодня пока хватит, раб день закончен =)
  
Наверх
ICQ  
IP записан
 
Naked
YaBB Newbies
*
Отсутствует



Сообщений: 8
Местоположение: Черногорск
Зарегистрирован: 21. Ноября 2011
Пол: Мужской
Re: DBF: прямой запрос медленнее чем 1с запрос
Ответ #6 - 22. Ноября 2011 :: 08:01
Печать  
На свежую голову пересмотрел запрос, и действительно не правильно написан.. переделал, и вот оно счастье:
Секунд на Выполнить: 38.268
Секунд на ВыполнитьИнструкцию: 1.661
Сам запрос:
Код
Выбрать все
|SELECT
	|	РегПартий.Контрагент 				as [Контрагент $Справочник.Контрагенты],
	|	РегПартий.Фирма						as [Фирма $Справочник.Фирмы],
	|	SUM(РегПартий.КоличествоНачОст) 	as НачОстатокТовара
	|FROM
	|	(SELECT
	|		$Р.Контрагент AS Контрагент,
	|		$Р.Фирма AS Фирма,
	|		$Р.ОстатокТовара AS КоличествоНачОст
	|	FROM
	|		$РегистрИтоги.ПартииТоваров as Р
 	|	WHERE
 	|		а+$Р.ПрихДокумент
 	|		LIKE ___'+'_____________')
 	|
 	|	UNION ALL
	|
	|	SELECT
	|		$Р.Контрагент AS Контрагент,
	|		$Р.Фирма AS Фирма,
	|		$Р.ОстатокТовара * (1 - Р.debkred * 2) AS КоличествоНачОст
	|	FROM
	|		$Регистр.ПартииТоваров AS Р
 	|	WHERE
 	|		DTOS(Р.date)+Р.time+Р.iddoc+STR(lineno,4)+STR(actno,6)
 	|		BETWEEN
 	|			DTOS(:НачалоМесяца~~)+'	'+'	   '+'    '+'	'
 	|		   AND
 	|			DTOS(:ПредДата~~)+'ZZZZZZ'+'ZZZZZZZZZ'+'ZZZZ'+'ZZZZZZ'
 	|		AND $Р.Фирма = :ВыбФирма
 	|		AND $Р.Контрагент = :ВыбКлиент
 	|	) РегПартий
	|GROUP BY
	|	Контрагент,
	|	Фирма
	|"; 



Размеры файлов регистра партий
RG1130.DBF = 1,12 ГБ = ИТОГИ
RA1130.DBF = 1,25 ГБ = ДВИЖЕНИЯ

Измерения по порядку
Фирма
Товар
Статус
Контрагент
Поставщик
Поставка
ПрихДокумент

Прошу прощения за свою невнимательность, и еще раз спасибо за помощь.
теперь тока по заплаткам от hogik вопросы
_http://infostart.ru/public/15577/ - по поводу размера
_http://infostart.ru/public/16268/ - по поводу монопольного исп.
правильные ссылки?
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: DBF: прямой запрос медленнее чем 1с запрос
Ответ #7 - 22. Ноября 2011 :: 08:37
Печать  
DTOS(:НачалоМесяца~~)+'      '+'         '+'    '+'      '

это не верная строка

Ссылки правильные, единственное но: эти решения не живут вместе.

У тебя один хрен регистр не закрывается как надо, файло итогов должно быть меньше в разы.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: DBF: прямой запрос медленнее чем 1с запрос
Ответ #8 - 22. Ноября 2011 :: 08:39
Печать  
Статус, это чего, строка длиной 1 у тебя в регистре ?

судя по этому:

LIKE ___'+'_________
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: DBF: прямой запрос медленнее чем 1с запрос
Ответ #9 - 22. Ноября 2011 :: 09:34
Печать  
И зачем такие сложности?
А что 1SQLite ужо отменили?
Тама усе прекрасно работает.
Да еще и в монопольном режиме!
Забей ты на эти dbf запросы.
Тем более что в индекс ты толко один фиг не попадеш нормально.
  
Наверх
 
IP записан
 
Naked
YaBB Newbies
*
Отсутствует



Сообщений: 8
Местоположение: Черногорск
Зарегистрирован: 21. Ноября 2011
Пол: Мужской
Re: DBF: прямой запрос медленнее чем 1с запрос
Ответ #10 - 22. Ноября 2011 :: 09:40
Печать  
Смотрел в ДД про статус, вроде правильно
F=SP2706    |(P)Статус           |C   |1     |0      

Почему не верная строка?
описание индекса в ДД следующее
DATE,TIME,IDDOC,LINENO,ACTNO
DATE = DTOS(:НачалоМесяца~~)
TIME = '      ' = 6 пробелов
IDDOC = '         ' = 9 пробелов
LINENO = '    ' = 4 пробела
ACTNO = '      ' = 6 пробелов

по заплаткам сделаю только от радуги пока что, и буду модули править проведения.
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: DBF: прямой запрос медленнее чем 1с запрос
Ответ #11 - 23. Ноября 2011 :: 05:31
Печать  
Форматирование кода "съедает" пробелы.
А твой регистр не закрывается 100% из-за твоего измерения Статус, строка длиной 1.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: DBF: прямой запрос медленнее чем 1с запрос
Ответ #12 - 23. Ноября 2011 :: 05:32
Печать  
varelchik писал(а) 22. Ноября 2011 :: 09:34:
И зачем такие сложности?
А что 1SQLite ужо отменили?
Тама усе прекрасно работает.
Да еще и в монопольном режиме!
Забей ты на эти dbf запросы.
Тем более что в индекс ты толко один фиг не попадеш нормально.


фоксовый провайдер быстрее, так же работает в монопольном режиме+ позволяет делать запросы на модификацию данных и запросы к сторонним базам.
Так что забивать не стоит.
  
Наверх
 
IP записан
 
Naked
YaBB Newbies
*
Отсутствует



Сообщений: 8
Местоположение: Черногорск
Зарегистрирован: 21. Ноября 2011
Пол: Мужской
Re: DBF: прямой запрос медленнее чем 1с запрос
Ответ #13 - 23. Ноября 2011 :: 08:31
Печать  
хорошо, если съедает пробелы, тогда что посоветуете использовать в подобных условиях?
строка длиной 1 - на сколько помню это стандартное измерение торговли 8.7, разве там были проблемы с закрытием партий?
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: DBF: прямой запрос медленнее чем 1с запрос
Ответ #14 - 23. Ноября 2011 :: 08:40
Печать  
Ну, у тебя они явно есть, судя по размеру таблички итогов.
Выгрузи итоги в ТЗ и смотри - там сразу видно, по какому измерению регистр не закрыт.
А 8-редакцию торговли я уже давно не видел, как там и чего было сразу и не вспомню.

Вот так отображение на форуме съедает пробелы :
  

_______008.JPG ( 22 KB | Загрузки )
_______008.JPG
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать