|
Запросы в файловой базе | ☑ | ||
---|---|---|---|---|
0
MrAvPika
16.01.17
✎
18:00
|
Кто нибудь может подсказать как ускорить запрос на файловой отрабатывает минуту, а на клиент серверной архитектуре секунд 5, может есть то, что не стоит использовать в запросах к файловой базе?
|
|||
1
mehfk
16.01.17
✎
18:01
|
Не исключено.
|
|||
2
Волшебник
модератор
16.01.17
✎
18:03
|
Файловый режим работы 1С не предназначен для реальной работы, тем более многопользовательской с запросами в стиле клиент-сервер.
|
|||
3
MrAvPika
16.01.17
✎
18:07
|
(2) я понимаю, не будет много пользователей, да и запрос в принципе простой, просто совмещение остатков с ценами и штрихкодами
|
|||
4
MrAvPika
16.01.17
✎
18:07
|
Некоторые запросы выполняются достаточно быстро
|
|||
5
Jump
16.01.17
✎
18:08
|
(2) Где это написано что он не предназначен?
Как это согласуется с тем что они его продают для реальной работы, и не указывают при этом что он для тестирования? А так же с тем что подавляющее большинство работает именно на файловой версии? |
|||
6
Волшебник
модератор
16.01.17
✎
18:09
|
(5) Кругом обман...
|
|||
7
Jump
16.01.17
✎
18:10
|
(0) Пользователей одновременно сидящих в базе сколько? Как идет работа с файловой базой - локально, по сети, характеристики сети?
|
|||
9
MrAvPika
16.01.17
✎
18:11
|
(7) Локально, один пользователь
|
|||
10
MrAvPika
16.01.17
✎
18:12
|
Да в некоторых моментах она шустрее чем клиент серверная, поэтому к этому пришли
|
|||
11
roman844
16.01.17
✎
18:14
|
ТС запрос в студию
|
|||
12
MrAvPika
16.01.17
✎
18:31
|
(11)
"ВЫБРАТЬ РАЗЛИЧНЫЕ сфТоварыВЯчейкахОстатки.Номенклатура, сфТоварыВЯчейкахОстатки.Характеристика, сфТоварыВЯчейкахОстатки.Ячейка, сфТоварыВЯчейкахОстатки.ВНаличииОстаток, сфТоварыВЯчейкахОстатки.Ячейка.Владелец КАК Склад, СерииНоменклатуры.ГоденДо ПОМЕСТИТЬ ВТ_ТоварыВЯчейках ИЗ РегистрНакопления.сфТоварыВЯчейках.Остатки(, ) КАК сфТоварыВЯчейкахОстатки ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры КАК СерииНоменклатуры ПО сфТоварыВЯчейкахОстатки.Серия = СерииНоменклатуры.Ссылка ГДЕ НЕ сфТоварыВЯчейкахОстатки.Ячейка.Ссылка ЕСТЬ NULL И НЕ сфТоварыВЯчейкахОстатки.Характеристика ЕСТЬ NULL ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТоварыНаСкладах.Номенклатура, ТоварыНаСкладах.Характеристика КАК Характеристика, ТоварыНаСкладах.КоличествоНачальныйОстаток КАК НачальныйОстаток, ТоварыНаСкладах.КоличествоПриход КАК Приход, ТоварыНаСкладах.КоличествоРасход КАК Расход, ТоварыНаСкладах.КоличествоКонечныйОстаток - ТоварыНаСкладах.РезервКонечныйОстаток КАК КоличествоОстаток, ЕСТЬNULL(сфДефектураПредоплата.Дефектура, ЛОЖЬ) КАК Дефектура, ЕСТЬNULL(сфДефектураПредоплата.Предоплата, ЛОЖЬ) КАК Предоплата, сфДефектураПредоплата.ЦенаЗаказа ПОМЕСТИТЬ ВТ_ОстаткиИДефектураПредоплата ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), , , , Склад В (&Склад)) КАК ТоварыНаСкладах ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.сфДефектураПредоплата КАК сфДефектураПредоплата ПО ТоварыНаСкладах.Номенклатура = сфДефектураПредоплата.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ сфДефектураПредоплата.Номенклатура, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК Характеристика, 0 КАК НачальныйОстаток, 0 КАК Приход, 0 КАК Расход, 0 КАК КоличествоОстаток, сфДефектураПредоплата.Дефектура, сфДефектураПредоплата.Предоплата, сфДефектураПредоплата.ЦенаЗаказа ПОМЕСТИТЬ ВТ_ДефектураПредоплата ИЗ РегистрСведений.сфДефектураПредоплата КАК сфДефектураПредоплата ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОстаткиИДефектураПредоплата КАК ВТ_ОстаткиИДефектураПредоплата ПО сфДефектураПредоплата.Номенклатура = ВТ_ОстаткиИДефектураПредоплата.Номенклатура ГДЕ ЕСТЬNULL(ВТ_ОстаткиИДефектураПредоплата.Номенклатура, 0) = 0 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ОстаткиИДефектураПредоплата.Номенклатура, ВТ_ОстаткиИДефектураПредоплата.Характеристика, ВТ_ОстаткиИДефектураПредоплата.НачальныйОстаток, ВТ_ОстаткиИДефектураПредоплата.Приход, ВТ_ОстаткиИДефектураПредоплата.Расход, ВТ_ОстаткиИДефектураПредоплата.КоличествоОстаток, ВТ_ОстаткиИДефектураПредоплата.Дефектура, ВТ_ОстаткиИДефектураПредоплата.Предоплата, ВТ_ОстаткиИДефектураПредоплата.ЦенаЗаказа КАК ЦенаДефектураПредоплата ПОМЕСТИТЬ ВТ_Остатки_ДефектураПредоплата ИЗ ВТ_ОстаткиИДефектураПредоплата КАК ВТ_ОстаткиИДефектураПредоплата ОБЪЕДИНИТЬ ВЫБРАТЬ ВТ_ДефектураПредоплата.Номенклатура, ВТ_ДефектураПредоплата.Характеристика, ВТ_ДефектураПредоплата.НачальныйОстаток, ВТ_ДефектураПредоплата.Приход, ВТ_ДефектураПредоплата.Расход, ВТ_ДефектураПредоплата.КоличествоОстаток, ВТ_ДефектураПредоплата.Дефектура, ВТ_ДефектураПредоплата.Предоплата, ВТ_ДефектураПредоплата.ЦенаЗаказа ИЗ ВТ_ДефектураПредоплата КАК ВТ_ДефектураПредоплата ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Остатки_ДефектураПредоплата.Номенклатура, ВТ_Остатки_ДефектураПредоплата.Характеристика КАК Характеристика, Штрихкоды.Штрихкод, ВТ_Остатки_ДефектураПредоплата.КоличествоОстаток, ВЫБОР КОГДА ВТ_Остатки_ДефектураПредоплата.Дефектура ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ДействующиеЦены.Цена, 0) = 0 ТОГДА ЕСТЬNULL(ВТ_Остатки_ДефектураПредоплата.ЦенаДефектураПредоплата, 0) КОНЕЦ ИНАЧЕ ЕСТЬNULL(ДействующиеЦены.Цена, 0) КОНЕЦ КАК Цена, ВТ_Остатки_ДефектураПредоплата.Дефектура, ВТ_Остатки_ДефектураПредоплата.Предоплата ПОМЕСТИТЬ ВТ_Остатки_Цены_Штрихкоды ИЗ ВТ_Остатки_ДефектураПредоплата КАК ВТ_Остатки_ДефектураПредоплата ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДействующиеЦеныНоменклатуры.СрезПоследних(, ОбъектЦенообразования = &Магазин) КАК ДействующиеЦены ПО ВТ_Остатки_ДефектураПредоплата.Номенклатура = ДействующиеЦены.Номенклатура И ВТ_Остатки_ДефектураПредоплата.Характеристика = ДействующиеЦены.Характеристика ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды ПО ВТ_Остатки_ДефектураПредоплата.Номенклатура = Штрихкоды.Владелец И ВТ_Остатки_ДефектураПредоплата.Характеристика = Штрихкоды.Характеристика ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Остатки_Цены_Штрихкоды.Номенклатура, ВТ_Остатки_Цены_Штрихкоды.Характеристика, ВТ_Остатки_Цены_Штрихкоды.Штрихкод, ВТ_Остатки_Цены_Штрихкоды.КоличествоОстаток КАК Количество, ВТ_Остатки_Цены_Штрихкоды.Цена, ВТ_Остатки_Цены_Штрихкоды.Дефектура, ВТ_Остатки_Цены_Штрихкоды.Предоплата, ВТ_ТоварыВЯчейках.Ячейка, ВТ_ТоварыВЯчейках.ГоденДо КАК СрокГодности, ВТ_Остатки_Цены_Штрихкоды.Номенклатура.Производитель КАК Производитель, ВТ_Остатки_Цены_Штрихкоды.Номенклатура.сфМеждународноеНазвание КАК МеждународноеНазвание, ВТ_Остатки_Цены_Штрихкоды.Номенклатура.сфФармацевтическаяГруппа КАК ФармацевтическаяГруппа, ВТ_Остатки_Цены_Штрихкоды.Номенклатура.сфЭтоЖНВЛП КАК ЖНВЛП, ВТ_Остатки_Цены_Штрихкоды.Номенклатура.сфРанг КАК Ранг, ЕСТЬNULL(ВТ_Остатки_Цены_Штрихкоды.Номенклатура.сфБаллы, 0) КАК Бонус ИЗ ВТ_Остатки_Цены_Штрихкоды КАК ВТ_Остатки_Цены_Штрихкоды ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ТоварыВЯчейках КАК ВТ_ТоварыВЯчейках ПО ВТ_Остатки_Цены_Штрихкоды.Номенклатура = ВТ_ТоварыВЯчейках.Номенклатура И ВТ_Остатки_Цены_Штрихкоды.Характеристика = ВТ_ТоварыВЯчейках.Характеристика ГДЕ ВЫБОР КОГДА ВТ_Остатки_Цены_Штрихкоды.КоличествоОстаток > 0 ТОГДА ВЫБОР КОГДА ВТ_Остатки_Цены_Штрихкоды.Цена = 0 И НЕ ВТ_Остатки_Цены_Штрихкоды.Номенклатура.Наименование ПОДОБНО "!%" ТОГДА ЛОЖЬ ИНАЧЕ ВЫБОР КОГДА ВТ_Остатки_Цены_Штрихкоды.Штрихкод = "" ТОГДА ЛОЖЬ ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(ВТ_Остатки_Цены_Штрихкоды.Цена, 0) = 0 И НЕ ВТ_Остатки_Цены_Штрихкоды.Номенклатура.Наименование ПОДОБНО "!%" ТОГДА ЛОЖЬ ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(ВТ_Остатки_Цены_Штрихкоды.Штрихкод, 0) = 0 ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ ИНАЧЕ ИСТИНА КОНЕЦ" |
|||
13
Aleksey
16.01.17
✎
18:38
|
RLS отключен?
|
|||
14
MrAvPika
16.01.17
✎
18:44
|
(13) +
|
|||
15
MrAvPika
16.01.17
✎
18:46
|
Короче понял, в одной временной таблице не связываю более двух таблиц, и индексирую поля по которым связываю, работает очень быстро
|
|||
16
MrAvPika
16.01.17
✎
18:47
|
Всем спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |