|
v7: Прямой запрос: Syntax error | ☑ | ||
---|---|---|---|---|
0
Злопчинский
22.05.14
✎
20:00
|
delete
from ra4674 as Рег where Рег.sp4671 in ( select Жур.iddoc from 1sjourn as Жур where (Жур.iddocdef = ' 1W9') and (dtos(Жур.date)+Жур.time+Жур.iddoc between dtos({d '2011-07-01'})+' '+' ' and dtos({d '2011-12-31'})+'ZZZZZZ'+'ZZZZZZZZZ') ) Запрос.ВыполнитьИнструкцию(ТекстЗапроса); ...ТЕЛЯ.ERT(29)}: FAILED! ICommandText::Execute(): Syntax error. где? (ибо неграмотен). спсб. |
|||
1
mehfk
22.05.14
✎
20:13
|
Так работает?
SELECT * from ra4674 as Рег where Рег.sp4671 in ( select Жур.iddoc from 1sjourn as Жур where (Жур.iddocdef = ' 1W9') ) |
|||
2
toypaul
гуру
22.05.14
✎
20:14
|
а проще если?
Жур.date >= 01.07.11 and Жур.date < 01.01.12 |
|||
3
mehfk
22.05.14
✎
20:17
|
Еще предположение
from ra4674 as Рег where Рег.sp4671 in поменяй на from ra4674 where ra4674.sp4671 in либо from ra4674 where sp4671 in |
|||
4
ikea
22.05.14
✎
20:25
|
(0) from 1sjourn as Жур
а должно быть _1sjourn as Жур |
|||
5
mehfk
22.05.14
✎
20:26
|
(4) Это DBF
|
|||
6
КонецЦикла
22.05.14
✎
20:28
|
Если уж выепывотся то по полной
Журнал.idx_date_time_iddoc >= :ДатаНачала ... RecordSet.УстановитьТекстовыйПараметр("ДатаНачала", ДатаНачала); |
|||
7
КонецЦикла
22.05.14
✎
20:29
|
У тебя же есть скллайт?
|
|||
8
Злопчинский
22.05.14
✎
20:32
|
сколько спецов столько блин мнений...
|
|||
9
Злопчинский
22.05.14
✎
20:32
|
(3) не ругнулось, ушло на выполнение
|
|||
10
КонецЦикла
22.05.14
✎
20:33
|
мне кажется в датах накуярил, туплю что-то, давно с дбф не возился
|
|||
11
Злопчинский
22.05.14
✎
20:40
|
ошибка получается где-то вкуске
. and (dtos(Жур.date)+Жур.time+Жур.iddoc between dtos({d '2011-07-01'})+' '+' ' and dtos({d '2011-12-31'})+'ZZZZZZ'+'ZZZZZZZZZ') |
|||
12
Злопчинский
22.05.14
✎
21:15
|
и что? все спят?
|
|||
13
КонецЦикла
22.05.14
✎
21:16
|
Я ж написал как в случае склайт
idx_date_time_iddoc |
|||
14
Злопчинский
22.05.14
✎
21:20
|
(13) у мну на VFP выполняется вроде как...
|
|||
15
trad
22.05.14
✎
22:18
|
в VFP вроде так
BETWEEN(field,low value, high value) |
|||
16
Злопчинский
22.05.14
✎
22:30
|
(15) сейчас попробуем...
хотя в других местах вроде работало так как записано (?) |
|||
17
Злопчинский
22.05.14
✎
22:39
|
вот так выполняется
| between(dtos(Жур.date)+Жур.time+Жур.iddoc,dtos({d '2011-07-01'})+' '+' ',dtos({d '2011-08-30'})+'ZZZZZZ'+'ZZZZZZZZZ') |
|||
18
Злопчинский
22.05.14
✎
22:43
|
вот так выполняется все ок вроде
. ТекстЗапроса =" |Select * |from $Регистр.Заявки as Рег |where $Рег.ЗаявкаПокупателя in . если изменить на удаление . ТекстЗапроса =" |delete |from $Регистр.Заявки as Рег |where $Рег.ЗаявкаПокупателя in . - ругается syntax error..??? |
|||
19
Злопчинский
22.05.14
✎
22:49
|
Пишите еще!!
ушел домой, приду почитаю!!! |
|||
20
trad
22.05.14
✎
22:55
|
ТекстЗапроса ="
|delete |from $Регистр.Заявки |where $Регистр.Заявки.ЗаявкаПокупателя in |
|||
21
Злопчинский
23.05.14
✎
02:07
|
(20) спсб.
вот так вот прошло ТекстЗапроса =" |delete |from $Регистр.Заявки as Рег |where $Регистр.Заявки.ЗаявкаПокупателя in |( | select Жур.iddoc | from 1sjourn as Жур | where (Жур.iddocdef = $ВидДокумента.ЗаявкаПокупателя) and | between | ( | dtos(Жур.date)+Жур.time+Жур.iddoc, | dtos({d '2011-07-01'})+' '+' ', | dtos({d '2011-08-30'})+'ZZZZZZ'+'ZZZZZZZZZ' | ) |)" . А почему не проходит delete from ra4674 as Рег where Рег.sp4671 in .. ? |
|||
22
Злопчинский
23.05.14
✎
02:11
|
и дальше: вот удалил движения по регистру, теперь хочу удалить точно также тупо записи с итогами
Простой заменой в этом работающем запросе $Регистр на $РегистрОстатки получаю "бешеный" запрос, который вываливается с ошибкой (ну и фиг с ней) . чисто для примера . delete from ( select rg4674_vt.sp4668 as Фирма, rg4674_vt.sp4669 as Номенклатура, rg4674_vt.sp4670 as ДоговорПокупателя, rg4674_vt.sp4671 as ЗаявкаПокупателя, rg4674_vt.sp4672 as КоличествоРасходОстаток, rg4674_vt.sp4673 as СтоимостьРасходОстаток from rg4674 as rg4674_vt (nolock) where rg4674_vt.period={d '2014-05-01'} and ( rg4674_vt.sp4672 <> 0 or rg4674_vt.sp4673 <> 0 ) ) as Рег where ( select rg4674_vt.sp4668 as Фирма, rg4674_vt.sp4669 as Номенклатура, rg4674_vt.sp4670 as ДоговорПокупателя, rg4674_vt.sp4671 as ЗаявкаПокупателя, rg4674_vt.sp4672 as КоличествоРасходОстаток, rg4674_vt.sp4673 as СтоимостьРасходОстаток from rg4674 as rg4674_vt (nolock) where rg4674_vt.period={d '2014-05-01'} and ( rg4674_vt.sp4672 <> 0 or rg4674_vt.sp4673 <> 0 ) ) as ЗаявкаПокупателя in ( select Жур.iddoc from 1sjourn as Жур where (Жур.iddocdef = ' 1W9') and between ( dtos(Жур.date)+Жур.time+Жур.iddoc, dtos({d '2011-07-01'})+' '+' ', dtos({d '2011-07-31'})+'ZZZZZZ'+'ZZZZZZZZZ' ) ) Запрос.ВыполнитьИнструкцию(ТекстЗапроса); ...ЛЯ.ERT(47)}: FAILED! ICommandText::Execute(): Syntax error. |
|||
23
Злопчинский
23.05.14
✎
02:16
|
ой, в предыдущем "неправильно"
. вот так: delete from ( select rg4674_vt.sp4668 as Фирма, rg4674_vt.sp4669 as Номенклатура, rg4674_vt.sp4670 as ДоговорПокупателя, rg4674_vt.sp4671 as ЗаявкаПокупателя, rg4674_vt.sp4672 as КоличествоРасходОстаток, rg4674_vt.sp4673 as СтоимостьРасходОстаток from rg4674 as rg4674_vt (nolock) where rg4674_vt.period={d '2014-05-01'} and ( rg4674_vt.sp4672 <> 0 or rg4674_vt.sp4673 <> 0 ) ) as where ( select rg4674_vt.sp4668 as Фирма, rg4674_vt.sp4669 as Номенклатура, rg4674_vt.sp4670 as ДоговорПокупателя, rg4674_vt.sp4671 as ЗаявкаПокупателя, rg4674_vt.sp4672 as КоличествоРасходОстаток, rg4674_vt.sp4673 as СтоимостьРасходОстаток from rg4674 as rg4674_vt (nolock) where rg4674_vt.period={d '2014-05-01'} and ( rg4674_vt.sp4672 <> 0 or rg4674_vt.sp4673 <> 0 ) ) as ЗаявкаПокупателя in ( select Жур.iddoc from 1sjourn as Жур where (Жур.iddocdef = ' 1W9') and between ( dtos(Жур.date)+Жур.time+Жур.iddoc, dtos({d '2011-07-01'})+' '+' ', dtos({d '2011-07-31'})+'ZZZZZZ'+'ZZZZZZZZZ' ) ) Запрос.ВыполнитьИнструкцию(ТекстЗапроса); ...ЕЛЯ.ERT(47)}: FAILED! ICommandText::Execute(): Syntax error. . фиг с ней с ошибкой . |
|||
24
trad
23.05.14
✎
02:22
|
итоги - это $РегистрИтоги
|
|||
25
Злопчинский
23.05.14
✎
02:23
|
Собственно вопрос:
вот оттранслированный запрос на удаление, все ок delete from ra4674 where sp4671 in ( select Жур.iddoc from 1sjourn as Жур where (Жур.iddocdef = ' 1W9') and between ( dtos(Жур.date)+Жур.time+Жур.iddoc, dtos({d '2011-07-01'})+' '+' ', dtos({d '2011-07-31'})+'ZZZZZZ'+'ZZZZZZZZZ' ) ) . как получить (нормальной записью с 1с++) аналогичный запрос, только во второй строке чтобы было не from ra4674 //движения а from rg4674 //итоги . ??? . понятно, что можно написать впрямую, что сейчас и планирую забульбенить, но хотелось бы с использованием метаимен как-то...? (вот тупо удалил rg4674 - все получилось как хотел...) |
|||
26
Злопчинский
23.05.14
✎
02:24
|
(24) точно!! ты великий колдун!!!
а регистр Остатки - это получается виртуальная таблица (я правильно выразился)..? |
|||
27
trad
23.05.14
✎
02:25
|
(26) да, я такой
да, Остатки - это ВТ, но в dbf не поддерживается |
|||
28
Злопчинский
23.05.14
✎
02:27
|
вот еще вопрос:
. работающий запрос на удаление движений: . ТекстЗапроса =" |delete |from $Регистр.Заявки as Рег |where $Регистр.Заявки.ЗаявкаПокупателя in |( | select Жур.iddoc | from 1sjourn as Жур | where (Жур.iddocdef = $ВидДокумента.ЗаявкаПокупателя) and | between | ( | dtos(Жур.date)+Жур.time+Жур.iddoc, | dtos({d '2011-07-01'})+' '+' ', | dtos({d '2011-08-30'})+'ZZZZZZ'+'ZZZZZZZZZ' | ) |)" . все понятно, но он - "неправильный" - ставишь период побольше - и 1Ска сжирает памяти под гиг и вылетает (вложенный селект как я понимаю). . собственно - как написать "правильно" - чтобы запрос хренячил с датаН по ДатаК - ПОРЦИЯМИ...? |
|||
29
Злопчинский
23.05.14
✎
02:28
|
Вопро снепринципиальный - работа разовая, переколбашу "ручками", но просто инетересно
|
|||
30
Злопчинский
23.05.14
✎
02:35
|
..вот почему я туп в прямых запросах.
ленивый потому что. нужны они весьма эпизодически, поэтому и въезжать лень (да и стар ужо ;-) . вы кто по запросам помогает мну регулярно - как в МСК будетет - хоть объявитесь, посидим пива попьем, проставлюсь за помогалки. |
|||
31
Попытка1С
23.05.14
✎
02:41
|
(27) Класс ПрямойЗапрос поддерживает и в dbf
|
|||
32
Злопчинский
23.05.14
✎
02:45
|
(31) угу.. мне тут лень просто прямые запросы, а тут еще и классы подцеплять... ;-) да и как-то опасливо я к классам отношусь - вещи в себе они, узкого применения... хз что там внутрях понаписано, косячат помаленьку...
|
|||
33
Злопчинский
23.05.14
✎
02:46
|
Всем спасибо (но я еще вернусь, так просто вы меня не отделаетесь ;-), полез в ванну и спать, через неделю запуск большой WMS, вся жпс в мыле ;-)
|
|||
34
Попытка1С
23.05.14
✎
02:46
|
(32) классу ПрямойЗапрос уже не мало времени, очень серьезная разработка, да есть косяки но куда без них, мне очень нравится на нем писать, удобно. А главное что и для скл и для дбф почти одинаково все.
|
|||
35
Попытка1С
23.05.14
✎
02:47
|
+34 И за доку к классу автору отдельный респект и уважуха.
|
|||
36
trad
23.05.14
✎
02:49
|
(29) так попробуй
|delete |from $Регистр.Заявки |where $Регистр.Заявки.ЗаявкаПокупателя in |( | select Жур.iddoc | from 1sjourn as Жур | where between( | Жур.iddocdef+dtos(Жур.date), | $ВидДокумента.ЗаявкаПокупателя+dtos({d '2011-07-01'}), | $ВидДокумента.ЗаявкаПокупателя+dtos({d '2011-08-30'}) | ) |) |
|||
37
Злопчинский
23.05.14
✎
02:51
|
(34) угу, я смотрел его. тоже понравился. по кранйе мере осовив - будет будобно привыкать к 8-ым запросам ;-) 9если я когда нить до снеговика доберусь)
|
|||
38
Злопчинский
23.05.14
✎
02:56
|
(36) не въезжаю, чем это принципиально отличается - вроде как во внутреннем селекте перенесли в битвин условие на вид дока - это чем принципиально поможет..? - количество записей, отбираемых на удаление из регистра движений - при этом-то останется тем же...?
|
|||
39
trad
23.05.14
✎
03:07
|
(38) отличается индексом
как мне помница, в vfp, для того чтобы работал составной индекс, нужно писать выражение этого индекса |
|||
40
trad
23.05.14
✎
03:08
|
+ (39) выражение - вот это:
Жур.iddocdef+dtos(Жур.date) |
|||
41
m-serg74
23.05.14
✎
03:08
|
(39) можно вмешаться с левым вопросом, а IN (...) и INNER JOIN ... одно и тоже или в дбф нельзя?
|
|||
42
trad
23.05.14
✎
03:12
|
(41) не одно и тоже
но эту задачу, например в t-sql можно было бы решить и через inner join а в vfp - нет, синтаксис delete несколько другой, судя по документации (могу ошибаться, vfp у меня знания только теоретические) |
|||
43
m-serg74
23.05.14
✎
03:17
|
(42) понятно, все равно спс, последнее время тож прямыми увлекся, писать не удобно))) но использовать нравится
|
|||
44
trad
23.05.14
✎
03:17
|
+(42) в vfp9 тоже можно через join
|
|||
45
m-serg74
23.05.14
✎
03:18
|
правда пользую исключительно select, до update, delete не вырос (ссыкотно как то)
|
|||
46
Злопчинский
23.05.14
✎
03:49
|
(39) все равно не вьезжаю...
делете применяется к некоторому набору записей, выбранных внутренним селектом. Количество этих записей - сугубо большое получится - вне зависимости по индексу это отбирается или прямым перебором . ...??? |
|||
47
Ёпрст
23.05.14
✎
09:41
|
(36) не-не не..
лучше уж по индексу doctype бегать: IDDOCDEF+DTOS(DATE)+TIME+IDDOC |
|||
48
Ёпрст
23.05.14
✎
09:42
|
Хотя не ясно, чегой-то моя конструкция в (0) у Чебура ошибку вообще выдает.
|
|||
49
Ёпрст
23.05.14
✎
09:43
|
ну и да, с индекс нужно было не acdatetim использовать, а doctype , писал на коленке
|
|||
50
Ёпрст
23.05.14
✎
09:44
|
(40) там нет такого индекса
|
|||
51
ivsher
23.05.14
✎
10:42
|
Не совсем понял смысл условия
(dtos(Жур.date)+Жур.time+Жур.iddoc between dtos({d '2011-07-01'})+' '+' ' and dtos({d '2011-12-31'})+'ZZZZZZ'+'ZZZZZZZZZ') ) ведь если вам нужно все документы за определенный интервал дат, не касаемо позиций документа в течение одного дня, то зачем городить огород с dtos(Жур.date)+Жур.time+Жур.iddoc Просто сделайте BETWEEN для поля Жур.date и в выборку попадут все документы за выбранный интервал дат. |
|||
52
Ёпрст
23.05.14
✎
10:43
|
||||
53
ivsher
23.05.14
✎
10:53
|
Спасибо, просветился. Так вам надо что бы не только правильно но еще и быстро :). С дбф сталкивался последний раз лет 5 назад. Сейчас все как-то на скуле.
|
|||
54
trad
23.05.14
✎
11:25
|
(47) ну так я его и имею ввиду
(50) выражение же является _стартовой_ частью ключа, или VFP этого не сечет? |
|||
55
Ёпрст
23.05.14
✎
11:27
|
(54) надо бы проверить, как нить (обычно всегда достраивал до "целого" индекса, даже не думая)
:) |
|||
56
Z1
23.05.14
✎
12:42
|
(0) А что будет с базой после subj ?
как минимум надо пересчитать остатки по этому регистру и снять rf4674 _1sjourn у документов попадающих в тот же самый период. |
|||
57
Ёпрст
23.05.14
✎
12:44
|
(56) ну, снимать rf и не обязательно :)
ну будет там галка.. самих движений то нема.. |
|||
58
Ёпрст
23.05.14
✎
12:45
|
+57 ну и в табличке итогов, автор тоже хочет прибить все записи с этим измерением.
Их тоже, пересчитывать не обязательно будет |
|||
59
Z1
23.05.14
✎
13:01
|
(57) обязательно
1.при перепроведении документа будут проблемы 2.ну и как бы без этого нарушена структура бд (58) прочел внимательно 58 тогда после удаления у этого документа может остаться движения по этому регистру если их было несколько. т.е. нужно правильно расчитывать этот флаг rf. (из 0 я считал что хочет удалить все движения за период ). PS ну да еще вроде есть поле appcode в котором храниться общее число движений и проводок документа это поле тоже желательно при subj корректировать. Вообщем чтобы все было ок надо тщательно разбираться во всех деталях |
|||
60
Ёпрст
23.05.14
✎
13:06
|
(59)
1. Ну, какие например проблемы ? примерчик бы.. |
|||
61
Ёпрст
23.05.14
✎
13:07
|
Да на флагдвижения и апкоде.. можно вообще начихать и забыть :)
|
|||
62
Z1
23.05.14
✎
13:28
|
(60) базу(даже тестовую)
корежить не буду так что примера не будет. просто валиться 1с при пероведении документа( речь об sql версии ) - как бы из-за таких проблем и был написан отчет проверка регистров. (61) не знаю может когда есть или нет УРБД 1с ведет себя по разному особено при подгрузке документов и самых движений вот тут то и нужны и appcode и rf |
|||
63
Mikeware
23.05.14
✎
13:34
|
(59) Не appcode (там флаги, в каких подсистемах участвует документ), а actcnt (action count)
на rf можно реально начхать. хотя при ТиИ будут диагностка, что "количество движений не соответсвует заявленному" структура БД в принципе не нарушается (логическая целостность только, да и то - условно) (62) да ничего не валится. Ни с УРБД, ни без нее. |
|||
64
Ёпрст
23.05.14
✎
13:34
|
(62) не-не-не.. проверено, не валится (по крайней мере, на дбф это вообще ни на что не влияет
На счет уриба, не скажу с -ходу :) |
|||
65
Ёпрст
23.05.14
✎
13:35
|
(63) ну да, счетчик движений, на него тоже можно положить :)
|
|||
66
Mikeware
23.05.14
✎
13:35
|
(63) Только те, кто лезет вот так вот в кишки - уже практически не пользуются штатной ТиИ
|
|||
67
Ёпрст
23.05.14
✎
13:36
|
В общем, я никогда спецом 1sjourn Не правил (один раз только "красоту наводил", но потом, как то подзабил на это, совсем)
|
|||
68
Mikeware
23.05.14
✎
13:36
|
(64) на сиквеле тоже ничего не падает.
|
|||
69
Ёпрст
23.05.14
✎
13:37
|
Ну .. штатную ТиИ можно конечно делать, только не на всех табличках, а только нужных, так.. для забавы :)
|
|||
70
Ёпрст
23.05.14
✎
13:37
|
подменяя остальные таблички "пустышками"
|
|||
71
Mikeware
23.05.14
✎
13:38
|
(69) а что ты хочешь этим достичь? :-)
основная проблема с регистрами - так это решается контролем и выборочным пересчетом итогов... |
|||
72
Z1
23.05.14
✎
13:46
|
(63) ну да actcnt пишу по памяти.
чихать на rf можно не всегда если по каким то причина rf = 0 и есть движение то произойдет следущее при проведении движение не удалиться и при вставке движения 1с валится при insert ( если по новым данным документа нужно движение по этому регистру). по твоей логике поля rf вообще не нужны. ну вообщем каждый сам себе решает тщательно или не тцательно нужно разбираться в деталях когда делаешь что-то типа subj. |
|||
73
Z1
23.05.14
✎
13:54
|
(65) на счетчик движений тоже класть нельзя
в 2009 или в 2010 году на 1сpp ветка на 66 страниц и там у товарища были большие проблемы с базой в том чиле и из-за неправильного счетчика, только достигал он нарушение целосности базы при проведении одного документа из модуля другого документа а в subj мы сами себе кладем грабли |
|||
74
Z1
23.05.14
✎
13:55
|
(72) для 68
|
|||
75
Mikeware
23.05.14
✎
14:13
|
(72) запись движений "снаружи" - достаточно редкий случай. Я такое только у Садовниковва видел. а в иных случаях, как у ТС - будет строго наеборот: флаг стоит, счетчик не пуст, а движений нуль.
А насчет ССЗБ - согласен. "каждый - сам кузнец своего геморроя...."© |
|||
76
Злопчинский
23.05.14
✎
16:20
|
прочитал. впечатлился. задумался. герои - среди нас.
изначально все задумывалось для тотального уничтожения заявок клиентов за период большой. штатно - практически нереально. . теперь когда подчищаются все движения с заявками покупателей (а это ТиС, Регистр.ЗаявкиПокупателей, Регистр.ОстаткиТМЦ) - сами заявки можно и не удалять. Тем более что при перепроведени документов они у меня не перепроводятся. . так что все должно быть чики-пуки. . спасибо. . пишите еще - буду черпать из неисчерпаемой кладези мудрости (пока мудрецы-аксакалы живы, 8-ков таких глубококопателей - ваще наверное нет... расстраивает меня 8-ка и программеры на ней с которыми встречаюсь... как-то не могут они сделать также красиво как я на клюшках... зашорены они вдребезги попалам. расстроен я... ;-) |
|||
77
ДенисЧ
23.05.14
✎
16:21
|
(75) Я тоже делал движения скулем...
|
|||
78
ДенисЧ
23.05.14
✎
16:21
|
в 77, разумеется
|
|||
79
Злопчинский
23.05.14
✎
22:55
|
(39) как-то сомнительно...
в журнале заявлены вот такие индексы #----Indexes------ # Name |Descr |Unique|Indexed fields |DBName I=IDDOC |Id Doc |0 |IDDOC |IDDOC I=ACDATETIM|Date+Time+ID |0 |DATE,TIME,IDDOC |ACDATETIME I=DOCNO |Prefix+No |0 |DNPREFIX,DOCNO(UPPER) |DOCNO I=DOCTYPE |Type+Date+Time|0 |IDDOCDEF,DATE,TIME,IDDOC |DOCTYPE I=JOURNAL |Journal+Date+T|0 |IDJOURNAL,DATE,TIME,IDDOC |JOURNAL |
|||
80
Злопчинский
23.05.14
✎
23:06
|
(39) сделал, запустил, шарашит
что интересно - в таокм варианте выборки-удаления проц занят не на 100%, график загруженности идет пилой... а в предыдущем варианте - 100% под завязку сплошная линия... |
|||
81
Злопчинский
23.05.14
✎
23:06
|
и память жрется гораздо экономнее... более правильный запрос..
|
|||
82
Злопчинский
23.05.14
✎
23:14
|
(80) фиг его знает это ЧЯ? удалял за полгода - картинка была такая, сейчас запустил на 2 года - загрузка под 100%... нипанятна...
. шарашить будет где-то минут 20-25 |
|||
83
Злопчинский
23.05.14
✎
23:21
|
Еще бы кто объяснил мну популярно почему при записи запроса как в (26) - прога падает быстро по исчерпанию памяти (отжирает под гиг и валится), а по (36) вот шарашит себе спокойно и шаращит (паямть растет но медленно).
. второй запрос получается более селективным - то есть меньше записей выбирается, чтобы найти нужные..? или как? |
|||
84
Злопчинский
23.05.14
✎
23:26
|
во, ваще отбабахало за чуть больше 10 мин...
|
|||
85
Злопчинский
24.05.14
✎
03:15
|
подчистил, ужал, пересчитал итоги, все ок.
результат соответствует ожидаемому. правда таблички итогов существенно увеличились при пересчете сдвигом ТА на первый документ и обратно на текущий момент. Если почистить от нулевых итогов - получается вообще хорошо очень. Но как-то криво движок итоги пересчитывает - делает ОЧЕНЬ много нулевых записей в табличку итогов.. отчего так - непонятно... |
|||
86
trad
24.05.14
✎
18:36
|
(79) состав индексов можно посмотреть и в dd, реальное выражение нужно смотреть в спец редакторе либо текстовый редактором посмотреть cdx
|
|||
87
Злопчинский
25.05.14
✎
02:13
|
(86) это понятно... вот не очень мне понятно почему твое небольшое изменение дало такой эффект хороший, см.(83)
|
|||
88
Z1
25.05.14
✎
09:22
|
(87) отличается индексом
Давай немног по другому Предположим у тебя в базе 1000 000 документов И всего 10 документов заявкапокупателя В случае 26 будет перебор из милионна документов В случае 36 будет перебор из 10 документов trad все это написал но может не очень понятно для тебя Твой вопрос очень важный и если поймешь отличия 26 от 36 то сможешь писать более оптимальные запросы |
|||
89
Злопчинский
26.05.14
✎
00:49
|
(88) не, это-то понятно. Непонятно почему перебор отжирает столько памяти в случае (26) он что - сначала выбирает всю выборку, фильтрует ее по условиям, а потом по полученной подвыборке начинает делеты делать? или как..?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |