Имя: Пароль:
1C
1C 7.7
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) он что - сначала выбирает всю выборку, фильтрует ее по условиям, а потом по полученной подвыборке начинает делеты делать? или как..?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан