|
Бешеные тормоза после переноса на MS SQL | ☑ | ||
---|---|---|---|---|
0
Альбатрос
11.05.15
✎
10:36
|
После переноса переписанной файловой базы УТ 10.3 на MS SQL наблюдается лютые тормоза при работе с ней. Пользователей немного, штук 15 одновременной работы.При проведении ОРП с ТЧ в 226 строк система задумывается на 2(!) минуты, при чем 97% времени на строчку:
УправлениеЗапасамиПартионныйУчет.ДвижениеПартийТоваров(Ссылка, Движения.СписанныеТовары.Выгрузить()); Ну и формирование всяких отчетов стало занимать намного больше времени. На этом же сервере крутится еще 4 базы, с ними таких проблем нет. Настройки БД у всех одинаковые. Вроде и гуглил, и статейки всякие читал - причину найти не могу. Спасайте! Вводные: 8-ядерный Xeon CPU E5-2407 32Гб оперативной памяти SCSI винт (на котором базы) База УТ 10.3 размером в почти 9 Гб Платформа 1С:Предприятие 8.2 (8.2.19.90) Сервер 1с предприятия находится на другом компе Если нужна еще какая-нибудь информация - скажите. Насоветуйте чего-нибудь. |
|||
38
Альбатрос
14.05.15
✎
05:22
|
Max degree of parallelism (DOP) значение 1
У меня такая проблема, при добавлении строчки -debug у меня перестает запускаться агент на сервере. Вот такая ошибка, это мне админ прислал: Имя журнала: System Подача: Microsoft-Windows-DistributedCOM Дата: 14.05.2015 8:03:56 Код события: 10016 Категория задачи:Отсутствует Уровень: Ошибка Ключевые слова:Классический Пользователь: 1CSERVER\USR1CV82 Компьютер: 1CSERVER.kom-kastor.local Описание: Параметры разрешений для конкретного приложения не дают разрешения Локальный Активация для приложения COM-сервера с CLSID {BA126AD1-2166-11D1-B1D0-00805FC1270E} пользователю 1CSERVER\USR1CV82 с SID (S-1-5-21-4102014034-2086728852-1080897402-1002) и адресом LocalHost (с использованием LRPC). Это разрешение безопасности можно изменить с помощью служебной программы управления службами компонентов. Xml события: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="Microsoft-Windows-DistributedCOM" Guid="{1B562E86-B7AA-4131-BADC-B6F3A001407E}" EventSourceName="DCOM" /> <EventID Qualifiers="49152">10016</EventID> <Version>0</Version> <Level>2</Level> <Task>0</Task> <Opcode>0</Opcode> <Keywords>0x80000000000000</Keywords> <TimeCreated SystemTime="2015-05-14T01:03:56.000Z" /> <EventRecordID>792819</EventRecordID> <Correlation /> <Execution ProcessID="0" ThreadID="0" /> <Channel>System</Channel> <Computer>1CSERVER.*******.local</Computer> <Security UserID="S-1-5-21-4102014034-2086728852-1080897402-1002" /> </System> <EventData> <Data Name="param1">для конкретного приложения</Data> <Data Name="param2">Локальный</Data> <Data Name="param3">Активация</Data> <Data Name="param4">{BA126AD1-2166-11D1-B1D0-00805FC1270E}</Data> <Data Name="param5">1CSERVER</Data> <Data Name="param6">USR1CV82</Data> <Data Name="param7">S-1-5-21-4102014034-2086728852-1080897402-1002</Data> <Data Name="param8">LocalHost (с использованием LRPC)</Data> </EventData> </Event> Я так понимаю, там что-то с настройками безопасности. Админ комментариев не дает. Подскажите, что не так? |
|||
39
Альбатрос
14.05.15
✎
05:40
|
для (38) вроде вот решение, вечером только проверим
http://forum.kaspersky.com/lofiversion/index.php/t161843.html |
|||
40
Альбатрос
14.05.15
✎
06:36
|
(34) увеличил до 200 - по фигу...
для журнала тоже |
|||
41
vde69
14.05.15
✎
09:48
|
(28)для 8 лучше ставить 0, это для 7.7 надо ставить 1
|
|||
42
Альбатрос
14.05.15
✎
10:07
|
(41) вернул обратно на ноль
|
|||
43
Альбатрос
14.05.15
✎
10:08
|
sql server 2008 r2 best practices analyzer ничего страшного не выяснил
|
|||
44
leonidkorolev
14.05.15
✎
10:38
|
(0) Я бы посмотре что внутри этой процедуры тормозит.
УправлениеЗапасамиПартионныйУчет.ДвижениеПартийТоваров(Ссылка, Движения.СписанныеТовары.Выгрузить()) |
|||
45
Альбатрос
14.05.15
✎
10:59
|
(44) для этого надо отладку на сервере включить, а это не получается пока
|
|||
46
Гёдза
14.05.15
✎
11:03
|
(45) без этого дальнейший разговор бессмысленный.
Может там блокировки идут |
|||
47
leonidkorolev
14.05.15
✎
11:05
|
(45) Ну ок. Можно в профайлере посмотреть что происходит на скуле в момент выполнения этой процедуры. Поставь точку останова на процедуру, перед выполнение запусти профайле и смотри самые тяжелые запросы.
|
|||
48
vde69
14.05.15
✎
11:05
|
(45) сделай (37)...
|
|||
49
Альбатрос
14.05.15
✎
11:12
|
(48) Я несколько хз, где это запускать :))) И не понял, что конкретно этот скрипт делает. Буду рад пояснениям )))
|
|||
50
vde69
14.05.15
✎
11:14
|
(49) запускать в скуле, скрипт выводит статистику ожидания блокировок (показывает слабые места)
|
|||
51
Альбатрос
14.05.15
✎
11:21
|
(50) Этот скрипт будет 5 часов мониторить при первом значении в 300?
|
|||
52
vde69
14.05.15
✎
11:21
|
(51) да
|
|||
53
Альбатрос
14.05.15
✎
11:24
|
(52) Поставил на 5 минут и начал проведение проблемного документа, жду...
|
|||
54
Klesk666
14.05.15
✎
11:25
|
+(33) прогони тест Гилева
|
|||
55
Kvant1C
14.05.15
✎
11:27
|
(40) Проверь размер приращения БД, вот полезная статья на эту тему: http://www.sql.ru/blogs/dbasimple/1924
не поленись прочитать |
|||
56
Альбатрос
14.05.15
✎
11:28
|
(52) Таааак, а результат в мс?
|
|||
57
Klesk666
14.05.15
✎
11:28
|
какая конфигурация дисковой системы?
|
|||
58
vde69
14.05.15
✎
11:29
|
(56) там в % куда нагляднее... нормально когда запись и чтение диска занимает 5-15%
|
|||
59
Альбатрос
14.05.15
✎
11:29
|
(54) (55) Ок, спасибо. Щас после оценки результата из (37) займусь
|
|||
60
Klesk666
14.05.15
✎
11:30
|
может админы все на один диск запихали
|
|||
61
Альбатрос
14.05.15
✎
11:30
|
(58) LAZYWRITER_SLEEP процент = 25
|
|||
62
slavikzzz
14.05.15
✎
11:30
|
вот еще статья по оптимизации + делали пересчет итогов
http://1cgmix.ru/base/base1c/30-optimize1cupp |
|||
63
Альбатрос
14.05.15
✎
11:31
|
(60) Рейд массив там вроде как. А так да, все на одном диске
|
|||
64
vde69
14.05.15
✎
11:31
|
(61) запускать на менее часа смысла нет...
|
|||
65
Альбатрос
14.05.15
✎
11:32
|
(64) Надо ведь и нагрузку тогда обеспечить на проблемную базу для хорошего результата, не?
|
|||
66
Kvant1C
14.05.15
✎
11:33
|
Кстати на счет дисков, был такой случай когда проблемы на новом сервере были связаны именно с дисками, был косяк с контроллером, после настройки проблема ушла.
В общем не лишне саму дисковую подсистему проверить на скорострельность. |
|||
67
Альбатрос
14.05.15
✎
11:34
|
(66) Ну как бэ я не могу это сделать, а сисадмин по-любому скажет, что все норм и проверять не надо.
|
|||
68
Kvant1C
14.05.15
✎
11:34
|
(65) Попробуй бэкап свернуть/развернуть
|
|||
69
Klesk666
14.05.15
✎
11:34
|
а не проблемные базы типовые?
|
|||
70
vde69
14.05.15
✎
11:35
|
(65) запускать нужно на рабочем сервере во время обычной работы юзеров... никаких эмуляторов, перепроведений и т.д.
там анализируется например время отклика клиента и т.д. то есть ситема в целом а не сервер |
|||
71
Kvant1C
14.05.15
✎
11:36
|
(67) >>сисадмин по-любому скажет, что все норм и проверять не надо
ну тогда скажи ему чтобы он со скулем тогда сам боролся... |
|||
72
Альбатрос
14.05.15
✎
11:38
|
(69) да, и все обновленные до последнего релиза. А проблемная это "Управление торговлей", редакция 10.3 (10.3.18.3)
(71) Ну он заявит что проблема в самой базе. При этом его заявление будет выглядеть логичным, ведь остальные базы не тормозят. (70) Запустил на час без нагрузки, кроме обычной |
|||
73
Kvant1C
14.05.15
✎
11:42
|
(72) Ну тогда проблемы с диском можно отмести.
|
|||
74
Альбатрос
14.05.15
✎
11:43
|
(73) Размер прироста выставлен в 200 мб при базе в 9гб. Судя по статье - норм показатель.
|
|||
75
Гёдза
14.05.15
✎
11:45
|
(72) один работаешь или нет? Может регламент какой блокировки накладывает?
|
|||
76
Гёдза
14.05.15
✎
11:46
|
Если только с этой базой так на этом сервере, то очень вероятно что именно они
|
|||
77
Klesk666
14.05.15
✎
11:46
|
(73) это если база располагается также как остальные
|
|||
78
Альбатрос
14.05.15
✎
11:52
|
(75) Нет, не один. На протяжении рабочего дня регламентов нет.
|
|||
79
dmrjan
14.05.15
✎
11:52
|
Попробуй в MSSQL включить регулятор запросов, и поставь 2000-10000, документы будет проводится быстрее, а вот кто больше всего начнет кричать, у того и смотри. Обычно отчеты сами начинают ругаться на этот параметр.
|
|||
80
dmrjan
14.05.15
✎
11:53
|
Начни с 2000.
|
|||
81
Альбатрос
14.05.15
✎
11:54
|
(79) Это не скажется на работе других баз?
|
|||
82
dmrjan
14.05.15
✎
11:55
|
(81) Если скажется, значит не все в порядке с другими базами. Но это не смертельно, всегда можно отключить это значение. Или поменять.
|
|||
83
dmrjan
14.05.15
✎
11:57
|
Кстати - какой у тебя размер tempdb?
|
|||
84
Kvant1C
14.05.15
✎
12:00
|
(74) Модель восстановления какая устновлена, full или simple? Если full, то поменяй на simple.
|
|||
85
Альбатрос
14.05.15
✎
12:01
|
(84) Simple
|
|||
86
Альбатрос
14.05.15
✎
12:01
|
(83) Где посмотреть? ))))
|
|||
87
dmrjan
14.05.15
✎
12:04
|
В системных базах данных (86)
|
|||
88
vde69
14.05.15
✎
12:06
|
да не мечись... надо делать все по порядку, иначе на одни результаты будут наслаивается твои эксперименты...
оптимизация - она не быстрая... сделал проверил подумал, потом снова можно делать |
|||
89
Зеленый пень
14.05.15
✎
12:12
|
(45) Тогда сделай копию базы, там у модуля поставь галку "клиент" и отлаживай.
|
|||
90
dmrjan
14.05.15
✎
12:14
|
Может проблема в том, что в файловой версии было прописано, что процедура выполняется локально, а нужно на сервере? Посмотри - при проведении - сколько у тебя грузится сеть.
|
|||
91
Альбатрос
14.05.15
✎
12:44
|
(89) Ошибки валятся про мутабельные значения
|
|||
92
Альбатрос
14.05.15
✎
12:46
|
(88) Тест ничего особо не показал, кроме LAZYWRITER_SLEEP, у нее 21 %, все остальные не превышают 12
Может все-таки нагрузить ее? |
|||
93
Альбатрос
14.05.15
✎
12:47
|
(90) Но ведь тогда замер бы на нее сработал, нет?
|
|||
94
Альбатрос
14.05.15
✎
12:48
|
(87) Tempdb = 8мб, прирост 10%
|
|||
95
Альбатрос
14.05.15
✎
12:49
|
+(92) ghjcnj ,fpf ctqxfc vj;tn ,snm yt jcj,j yfuhe;tyf gjkmpjdfntkzvb
|
|||
96
Альбатрос
14.05.15
✎
12:49
|
+(92) просто база сейчас может быть вообще не нагружена пользователями
|
|||
97
0wl
14.05.15
✎
13:00
|
(94) Получается, сервер недавно перезагружал?
Для tempdb это очень маленький размер, поставь изначальный размер хотябы Мб 500, иначе постоянно будут блокировки на расширении файла данных. И я пропустил, индексы уже перестраивал? Если нет, запусти на ночь, днем перестроение индексов помешает работе пользователей |
|||
98
Альбатрос
14.05.15
✎
13:01
|
(97) Индексы регламентом перестраиваются в воскресенье - не помогло... Сервер перегружали сегодня ночью.
|
|||
99
vde69
14.05.15
✎
13:21
|
(92) так ты выложи табличку...
|
|||
100
dmrjan
14.05.15
✎
13:28
|
(94) (97) Получается база небольшая?
|
|||
101
dmrjan
14.05.15
✎
13:31
|
(93) Замер мог и не сработать, ведь если запрос большой, то как раз пару минут данные и перекачиваются на твой компьютер, где потом происходит выборка.
|
|||
102
Альбатрос
14.05.15
✎
13:56
|
(99) табличка результата
http://my-files.ru/jgf2g3 |
|||
103
vde69
14.05.15
✎
13:58
|
(102) сюда ТЕКСТ скопируй...
а то у многих помойки заблокированы |
|||
104
Альбатрос
14.05.15
✎
14:05
|
***total***; 30759327.0; 100.0
LAZYWRITER_SLEEP; 6494140.0; 21.1 XE_TIMER_EVENT; 3571619.0; 11.6 LOGMGR_QUEUE; 3536668.0; 11.5 REQUEST_FOR_DEADLOCK_SEARCH; 3545187.0; 11.5 SQLTRACE_INCREMENTAL_FLUSH_SLEEP;3535646.0; 11.5 FT_IFTS_SCHEDULER_IDLE_WAIT; 3480672.0; 11.3 CHECKPOINT_QUEUE; 2967207.0; 9.6 SLEEP_TASK; 1774646.0; 5.8 BROKER_TO_FLUSH; 1771903.0; 5.8 SLEEP_BPOOL_FLUSH; 20295.0; 0.1 CHKPT; 0.0; 0.0 |
|||
105
Альбатрос
14.05.15
✎
14:06
|
Остальные по процентам нули
|
|||
106
vde69
14.05.15
✎
14:11
|
у тебя статистика запросов не обновляется, поставь раз в час и проверь, что реально срабатывает... потом жди сутки двое, потом повтори
|
|||
107
vde69
14.05.15
✎
14:12
|
(106)+ план запросов кривой строится.
|
|||
108
Альбатрос
14.05.15
✎
16:36
|
(106) Попробую, спасибо
(107) можно поподробней про план запросов? |
|||
109
mr_K
14.05.15
✎
16:51
|
Я в УТ не силен, но в УПП переписав думаю аналогичную процедуру УправлениеЗапасамиПартионныйУчет.ДвижениеПартийТоваров получил жутчайший прирост производительсти.
До этого были испробованы буквально все танцы с бубном вокруг SQL с практически нулевыми результатами. |
|||
110
Fragster
гуру
14.05.15
✎
17:16
|
(109) я об этом еще в (13) написал - что неплохо бы замер производительности сделать
|
|||
111
Альбатрос
15.05.15
✎
05:24
|
(109) (110) Да, так и есть. Подключили мне наконец отладку на сервере и замер показал 92% времени выполнения на вот эту строчку - Возврат Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
|
|||
112
Альбатрос
15.05.15
✎
05:25
|
начинаю ковырять запрос )))
|
|||
113
Альбатрос
15.05.15
✎
05:28
|
Уважаемые, киньте пожалуйста информацией по оптимизации запросов для клиент-серверной работы базы.
|
|||
114
Альбатрос
15.05.15
✎
07:27
|
Прошу советов )))) Помогите, укажите где исправить:
Запрос.Текст = "ВЫБРАТЬ | СписанныеТовары.НомерСтрокиДокумента КАК НомерСтрокиДокумента, | ПартииТоваровНаСкладах.Номенклатура, | ПартииТоваровНаСкладах.ДокументОприходования КАК ДокументОприходования, | ПартииТоваровНаСкладах.ДокументОприходования.Дата КАК ДокументОприходованияДата, | ПартииТоваровНаСкладах.Склад, | ПартииТоваровНаСкладах.ХарактеристикаНоменклатуры, | ПартииТоваровНаСкладах.СерияНоменклатуры, | ПартииТоваровНаСкладах.Качество, | ПартииТоваровНаСкладах.Заказ, | ПартииТоваровНаСкладах.КоличествоОстаток КАК Количество, | ПартииТоваровНаСкладах.СтоимостьОстаток КАК Стоимость, | ПартииТоваровНаСкладах.СтатусПартии, | ВЫБОР | КОГДА СписанныеТовары.СерияНоменклатуры = ПартииТоваровНаСкладах.СерияНоменклатуры | ТОГДА 0 | ИНАЧЕ 1 | КОНЕЦ КАК ЧислоСерияНоменклатуры, | ВЫБОР | КОГДА СписанныеТовары.ДокументПартии = НЕОПРЕДЕЛЕНО | ТОГДА 0 | ИНАЧЕ ВЫБОР | КОГДА СписанныеТовары.ДокументПартии = ПартииТоваровНаСкладах.ДокументОприходования | ТОГДА 0 | ИНАЧЕ 1 | КОНЕЦ | КОНЕЦ КАК ЧислоДокументОприходования, | ВЫБОР | КОГДА СписанныеТовары.ЗаказПартии = НЕОПРЕДЕЛЕНО | ТОГДА 0 | ИНАЧЕ ВЫБОР | КОГДА ПартииТоваровНаСкладах.Заказ = &ПустойЗаказ | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ | КОНЕЦ КАК ЧислоЗаказ, | ВЫБОР | КОГДА ПартииТоваровНаСкладах.СтатусПартии = &НаКомиссию | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ КАК ЧислоСтатусПартии |ИЗ | РегистрСведений.СписанныеТовары КАК СписанныеТовары | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки( | &Дат, | Номенклатура В | (ВЫБРАТЬ | РегистрСведений.СписанныеТовары.Номенклатура | ИЗ | РегистрСведений.СписанныеТовары | ГДЕ | РегистрСведений.СписанныеТовары.Регистратор = &Ссылка)" + ?(ВестиПартионныйУчетПоСкладам, " | И (Склад В | (ВЫБРАТЬ | РегистрСведений.СписанныеТовары.Склад | ИЗ | РегистрСведений.СписанныеТовары | ГДЕ | РегистрСведений.СписанныеТовары.Регистратор = &Ссылка) ИЛИ Склад = &ПустойСклад)", "") + ") КАК ПартииТоваровНаСкладах | ПО СписанныеТовары.Номенклатура = ПартииТоваровНаСкладах.Номенклатура | И СписанныеТовары.ХарактеристикаНоменклатуры = ПартииТоваровНаСкладах.ХарактеристикаНоменклатуры | И (ВЫБОР | КОГДА ПартииТоваровНаСкладах.Качество = &ПустоеКачество | ТОГДА ИСТИНА | ИНАЧЕ ВЫБОР | КОГДА СписанныеТовары.Качество = &ПустоеКачество | ТОГДА ПартииТоваровНаСкладах.Качество = &КачествоНовый | ИНАЧЕ ПартииТоваровНаСкладах.Качество = СписанныеТовары.Качество | КОНЕЦ | КОНЕЦ) | " + ?(ВестиПартионныйУчетПоСкладам, "И (ПартииТоваровНаСкладах.Склад = СписанныеТовары.Склад ИЛИ ПартииТоваровНаСкладах.Склад = &ПустойСклад)", "") + " | И (ВЫБОР | КОГДА СписанныеТовары.ДопустимыйСтатус1 <> &ПустойСтатус | ИЛИ СписанныеТовары.ДопустимыйСтатус2 <> &ПустойСтатус | ИЛИ СписанныеТовары.ДопустимыйСтатус3 <> &ПустойСтатус | ИЛИ СписанныеТовары.ДопустимыйСтатус4 <> &ПустойСтатус | ТОГДА ПартииТоваровНаСкладах.СтатусПартии = &ПустойСтатус | ИЛИ ПартииТоваровНаСкладах.СтатусПартии = &СтатусПартииПоОрдеру | ИЛИ ПартииТоваровНаСкладах.СтатусПартии = СписанныеТовары.ДопустимыйСтатус1 | ИЛИ ПартииТоваровНаСкладах.СтатусПартии = СписанныеТовары.ДопустимыйСтатус2 | ИЛИ ПартииТоваровНаСкладах.СтатусПартии = СписанныеТовары.ДопустимыйСтатус3 | ИЛИ ПартииТоваровНаСкладах.СтатусПартии = СписанныеТовары.ДопустимыйСтатус4 | ИНАЧЕ ИСТИНА | КОНЕЦ) | | И (ВЫБОР | КОГДА СписанныеТовары.СписыватьТолькоПоЗаказу = ИСТИНА | ТОГДА ВЫБОР | КОГДА ПартииТоваровНаСкладах.Заказ <> СписанныеТовары.ЗаказПартии | ТОГДА ВЫБОР | КОГДА (НЕ СписанныеТовары.ЗаказПартии = НЕОПРЕДЕЛЕНО) | ТОГДА ЛОЖЬ | ИНАЧЕ ПартииТоваровНаСкладах.Заказ = &ПустойЗаказ | КОНЕЦ | ИНАЧЕ ИСТИНА | КОНЕЦ | ИНАЧЕ ВЫБОР | КОГДА ПартииТоваровНаСкладах.Заказ <> СписанныеТовары.ЗаказПартии | ТОГДА ПартииТоваровНаСкладах.Заказ = &ПустойЗаказ | ИНАЧЕ ИСТИНА | КОНЕЦ | КОНЕЦ) | И (СписанныеТовары.СерияНоменклатуры = ПартииТоваровНаСкладах.СерияНоменклатуры | ИЛИ ПартииТоваровНаСкладах.СерияНоменклатуры = &ПустаяСерияНоменклатуры) |ГДЕ | СписанныеТовары.Регистратор = &ОсновнойДокумент | |УПОРЯДОЧИТЬ ПО | ЧислоСерияНоменклатуры, | ЧислоДокументОприходования, | ЧислоЗаказ, | ЧислоСтатусПартии" + ?(СтратегияСтатусПартии = Перечисления.СтретегииСписанияПартийТоваровПоСтатусам.СначалаПринятыеПотомСобственные, " Убыв", "") + ", | ДокументОприходованияДата" + ?(СпособОценкиМПЗ = "ЛИФО", " Убыв","") + ", | ДокументОприходования" + ?(СпособОценкиМПЗ = "ЛИФО", " Убыв","") + " |ИТОГИ ПО | НомерСтрокиДокумента"; |
|||
115
ЧеловекДуши
15.05.15
✎
08:26
|
(114) Используй ВТ для отбора
|
|||
116
ЧеловекДуши
15.05.15
✎
08:29
|
+(114) >>> .Регистратор
Используй точный отбор: .Регистратор Ссылка Документ.Такой-ТО У тебя же известен Вид докмента, по которому ведется отбор, так накой ты все отбираешь. По составному типу, 1С компилирует запрос так, что все документы, которые выступают регистратором, участвуют в отборе... В общем этот момент уже на 50% ускорит зарос :) |
|||
117
ЧеловекДуши
15.05.15
✎
08:32
|
Сдается мне, что у вас в БД все запросы нужно допиливать под SQL версию.
|
|||
118
vde69
15.05.15
✎
08:58
|
тормозит вот это РегистрСведений.СписанныеТовары.Регистратор = &Ссылка"
вынеси этот запрос во ВТ и проиндексируй поля по которым джойнишь это для начала :) |
|||
119
vde69
15.05.15
✎
08:59
|
(118) и не забудь привести тип регистратора в ВТ, там наверняка составной, а они во ВТ тупят прилично...
|
|||
120
Альбатрос
15.05.15
✎
09:14
|
(116) (118) (119) Спасибо, сейчас буду пробовать
|
|||
121
Альбатрос
15.05.15
✎
09:14
|
(117) К моей великой печали это скорей всего так
|
|||
122
DayDreamer
15.05.15
✎
09:17
|
возможно вопрос не к месту, но на серваке с SQL какой установлен план электропитания? максимальная производительность или нет?
|
|||
123
Альбатрос
15.05.15
✎
09:22
|
(122) Спрошу у админа как появится, у меня прав нет самому глянуть
|
|||
124
DayDreamer
15.05.15
✎
09:28
|
(123) и еще вопрос - сервер физический или виртуальный?
|
|||
125
Альбатрос
15.05.15
✎
10:22
|
(124) Физический
|
|||
126
Альбатрос
15.05.15
✎
10:24
|
Переделал пока вот так:
"ВЫБРАТЬ | СписанныеТовары.Номенклатура, | СписанныеТовары.Склад |ПОМЕСТИТЬ ВТТоварыИСклады |ИЗ | РегистрСведений.СписанныеТовары КАК СписанныеТовары |ГДЕ | СписанныеТовары.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах | И СписанныеТовары.Регистратор = &Ссылка |; | |ВЫБРАТЬ | СписанныеТовары.НомерСтрокиДокумента КАК НомерСтрокиДокумента, | ПартииТоваровНаСкладах.Номенклатура, | ПартииТоваровНаСкладах.ДокументОприходования КАК ДокументОприходования, | ПартииТоваровНаСкладах.ДокументОприходования.Дата КАК ДокументОприходованияДата, | ПартииТоваровНаСкладах.Склад, | ПартииТоваровНаСкладах.ХарактеристикаНоменклатуры, | ПартииТоваровНаСкладах.СерияНоменклатуры, | ПартииТоваровНаСкладах.Качество, | ПартииТоваровНаСкладах.Заказ, | ПартииТоваровНаСкладах.КоличествоОстаток КАК Количество, | ПартииТоваровНаСкладах.СтоимостьОстаток КАК Стоимость, | ПартииТоваровНаСкладах.СтатусПартии, | ВЫБОР | КОГДА СписанныеТовары.СерияНоменклатуры = ПартииТоваровНаСкладах.СерияНоменклатуры | ТОГДА 0 | ИНАЧЕ 1 | КОНЕЦ КАК ЧислоСерияНоменклатуры, | ВЫБОР | КОГДА СписанныеТовары.ДокументПартии = НЕОПРЕДЕЛЕНО | ТОГДА 0 | ИНАЧЕ ВЫБОР | КОГДА СписанныеТовары.ДокументПартии = ПартииТоваровНаСкладах.ДокументОприходования | ТОГДА 0 | ИНАЧЕ 1 | КОНЕЦ | КОНЕЦ КАК ЧислоДокументОприходования, | ВЫБОР | КОГДА СписанныеТовары.ЗаказПартии = НЕОПРЕДЕЛЕНО | ТОГДА 0 | ИНАЧЕ ВЫБОР | КОГДА ПартииТоваровНаСкладах.Заказ = &ПустойЗаказ | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ | КОНЕЦ КАК ЧислоЗаказ, | ВЫБОР | КОГДА ПартииТоваровНаСкладах.СтатусПартии = &НаКомиссию | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ КАК ЧислоСтатусПартии |ИЗ | РегистрСведений.СписанныеТовары КАК СписанныеТовары | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки( | &Дат, | Номенклатура В | (ВЫБРАТЬ | ВТТоварыИСклады.Номенклатура | ИЗ | ВТТоварыИСклады) | И (Склад В | (ВЫБРАТЬ | ВТТоварыИСклады.Склад | ИЗ | ВТТоварыИСклады) ИЛИ Склад = &ПустойСклад)) КАК ПартииТоваровНаСкладах | ПО СписанныеТовары.Номенклатура = ПартииТоваровНаСкладах.Номенклатура | И СписанныеТовары.ХарактеристикаНоменклатуры = ПартииТоваровНаСкладах.ХарактеристикаНоменклатуры | И (ВЫБОР | КОГДА ПартииТоваровНаСкладах.Качество = &ПустоеКачество | ТОГДА ИСТИНА | ИНАЧЕ ВЫБОР | КОГДА СписанныеТовары.Качество = &ПустоеКачество | ТОГДА ПартииТоваровНаСкладах.Качество = &КачествоНовый | ИНАЧЕ ПартииТоваровНаСкладах.Качество = СписанныеТовары.Качество | КОНЕЦ | КОНЕЦ) | И (ПартииТоваровНаСкладах.Склад = СписанныеТовары.Склад ИЛИ ПартииТоваровНаСкладах.Склад = &ПустойСклад) | И (ВЫБОР | КОГДА СписанныеТовары.ДопустимыйСтатус1 <> &ПустойСтатус | ИЛИ СписанныеТовары.ДопустимыйСтатус2 <> &ПустойСтатус | ИЛИ СписанныеТовары.ДопустимыйСтатус3 <> &ПустойСтатус | ИЛИ СписанныеТовары.ДопустимыйСтатус4 <> &ПустойСтатус | ТОГДА ПартииТоваровНаСкладах.СтатусПартии = &ПустойСтатус | ИЛИ ПартииТоваровНаСкладах.СтатусПартии = &СтатусПартииПоОрдеру | ИЛИ ПартииТоваровНаСкладах.СтатусПартии = СписанныеТовары.ДопустимыйСтатус1 | ИЛИ ПартииТоваровНаСкладах.СтатусПартии = СписанныеТовары.ДопустимыйСтатус2 | ИЛИ ПартииТоваровНаСкладах.СтатусПартии = СписанныеТовары.ДопустимыйСтатус3 | ИЛИ ПартииТоваровНаСкладах.СтатусПартии = СписанныеТовары.ДопустимыйСтатус4 | ИНАЧЕ ИСТИНА | КОНЕЦ) | | И (ВЫБОР | КОГДА СписанныеТовары.СписыватьТолькоПоЗаказу = ИСТИНА | ТОГДА ВЫБОР | КОГДА ПартииТоваровНаСкладах.Заказ <> СписанныеТовары.ЗаказПартии | ТОГДА ВЫБОР | КОГДА (НЕ СписанныеТовары.ЗаказПартии = НЕОПРЕДЕЛЕНО) | ТОГДА ЛОЖЬ | ИНАЧЕ ПартииТоваровНаСкладах.Заказ = &ПустойЗаказ | КОНЕЦ | ИНАЧЕ ИСТИНА | КОНЕЦ | ИНАЧЕ ВЫБОР | КОГДА ПартииТоваровНаСкладах.Заказ <> СписанныеТовары.ЗаказПартии | ТОГДА ПартииТоваровНаСкладах.Заказ = &ПустойЗаказ | ИНАЧЕ ИСТИНА | КОНЕЦ | КОНЕЦ) | И (СписанныеТовары.СерияНоменклатуры = ПартииТоваровНаСкладах.СерияНоменклатуры | ИЛИ ПартииТоваровНаСкладах.СерияНоменклатуры = &ПустаяСерияНоменклатуры) |ГДЕ | СписанныеТовары.Регистратор = &ОсновнойДокумент | |УПОРЯДОЧИТЬ ПО | ЧислоСерияНоменклатуры, | ЧислоДокументОприходования, | ЧислоЗаказ, | ЧислоСтатусПартии" + ?(СтратегияСтатусПартии = Перечисления.СтретегииСписанияПартийТоваровПоСтатусам.СначалаПринятыеПотомСобственные, " Убыв", "") + ", | ДокументОприходованияДата" + ?(СпособОценкиМПЗ = "ЛИФО", " Убыв","") + ", | ДокументОприходования" + ?(СпособОценкиМПЗ = "ЛИФО", " Убыв","") + " |ИТОГИ ПО | НомерСтрокиДокумента"; |
|||
127
Альбатрос
15.05.15
✎
10:25
|
время выполнения упало с 2 минут до 6 секунд!
|
|||
128
Альбатрос
15.05.15
✎
10:25
|
Радуюся, млять, как пацан, которому водяной пистолет подарили
|
|||
129
Альбатрос
15.05.15
✎
10:26
|
Всем ОГРОМНОЕ спасибо, но , видимо, я эту ветку еще не раз подниму, ибо оптимизация только начинается (((
|
|||
130
Гёдза
15.05.15
✎
10:27
|
вот тут еще можно соптимизировать
ПартииТоваровНаСкладах.ДокументОприходования.Дата |
|||
131
Альбатрос
15.05.15
✎
10:29
|
(130) Тоже вытащить в ВТ и соединить?
|
|||
132
H A D G E H O G s
15.05.15
✎
10:29
|
(131) Давай я те готовый модуль сброшу, а?
|
|||
133
vde69
15.05.15
✎
10:31
|
проиндексируй в ХП два поля
| СписанныеТовары.Номенклатура, | СписанныеТовары.Склад и еще у тебя в самом конце есть условие ГДЕ | СписанныеТовары.Регистратор = &ОсновнойДокумент его или в джойн впихни или подними выше (сделай вложеный или ВТ) |
|||
134
Альбатрос
15.05.15
✎
10:39
|
(132) Давай))) [email protected]
и другие модули тоже было бы круто )))) |
|||
135
Альбатрос
15.05.15
✎
10:41
|
(133) Ок, спасибо
|
|||
136
serpentt
15.05.15
✎
15:15
|
(134) извините за наглость а мне модуль не скините???
[email protected] |
|||
137
adron
15.05.15
✎
15:22
|
(0) а у тебя Microsoft SQL Server 2008 R2 случаем не "Express" иль ещё какой урезанный ?. Админы любят такие ставить.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |