|
v7: ДБФ, Быстрое обновление регистров | ☑ | ||
---|---|---|---|---|
0
Aristo
01.08.11
✎
12:43
|
Мне в самом большом регистре нужно поменять значение измерения с "Документ определенного вида" на "Документ".
Пересчет регистров занимает более чем сутки (не дождался еще). Есть какие - либо способы быстрее пересчитать регистр? База ДБФ. |
|||
1
Mikeware
01.08.11
✎
12:44
|
клиппер/фокспро.
в конце концов, сама же 1С |
|||
2
Aristo
01.08.11
✎
12:49
|
(1) можно примерную последовательность действий
|
|||
3
Mikeware
01.08.11
✎
12:50
|
1.взять инструмент
2. сделать. 3. переиндексировать регистр. |
|||
4
Андрей_Андреич
naïve
01.08.11
✎
12:51
|
Загрузить в скуль
|
|||
5
Ёпрст
01.08.11
✎
12:51
|
(0) Зачем ?
|
|||
6
Ёпрст
01.08.11
✎
12:52
|
а так, можно и прямым запросом проапдейтить табличку движений, потом на чистой базе с этим регистром создать табличку итогов.
|
|||
7
Mikeware
01.08.11
✎
12:53
|
(6) сказано же - регистр большой. Надо сделать еще больше :-)
|
|||
8
Ёпрст
01.08.11
✎
12:54
|
заёмет на всё меньше часа.
|
|||
9
Mikeware
01.08.11
✎
12:54
|
(6) кстати, можно и в итогах тоже проапдейтить...
|
|||
10
Ёпрст
01.08.11
✎
12:55
|
(9) да, так даже быстрее будет.
че-то не подумал. |
|||
11
Ёпрст
01.08.11
✎
12:56
|
тогда минут 5 на всё..
:) |
|||
12
Ёпрст
01.08.11
✎
12:56
|
+11 разве что реиндекс на пустой базе сделать.. еще 2 минуты.
|
|||
13
Aristo
01.08.11
✎
13:03
|
(9), (12) В целом понял так:
нужно в таблице движений и итогов увеличить колонку документа с 9 на 13 символов, затем перенести в пустую базу, переиндексировать там. Там же предварительно переделать MD (изменить значение измерения), пересоздать DD. Если все правильно понял - каким инструментом можно колонки поменять (или запросом) ? я говоря откровенно, это ни разу не делал, как - то все больше в скуле до этого. |
|||
14
Mikeware
01.08.11
✎
13:08
|
(13) любым инструментом, которым можно работать с дбф. Клиппер/фокспро/1С/аксессом
можно импортировать в SQL, трансформировать, и выплюнуть обратно. Можно и в md/dd руками подправить... |
|||
15
VoditelKobyly
01.08.11
✎
13:10
|
(13) Тогда возьми из скуля инструмент DTS.
Только лучше ещё раз подумай, а надо ли это делать. Может проще завести новый регистр? |
|||
16
Ёпрст
01.08.11
✎
13:16
|
(13) из любой базы делаешь
ALTER TABLE полный путь к табличке\RA<нужный номер> ALTER COLUMN <имя измерения> char(13); далее update set <имя измерения> = $ВидДокумента.ТвоёКакоеБыло+Left(<имя измерения>,9) и аналогично с Rg.. всё собственно |
|||
17
aka MIK
01.08.11
✎
13:16
|
Может попробуем разобраться почему так долго пересчитывается, и что именно? У меня такая же фигня была, пришлось пойти по пути упрощения учета )
|
|||
18
Ёпрст
01.08.11
✎
13:19
|
+16 только не помню уже, в дбф нужно ВидДокумента36 делать.
|
|||
19
Ёпрст
01.08.11
✎
13:20
|
+18 ну и ветку from в последний запрос.
|
|||
20
VoditelKobyly
01.08.11
✎
13:26
|
(16) А что ALTER TABLE фокспрошным драйвером поддерживается?
|
|||
21
Ёпрст
01.08.11
✎
13:27
|
ну, примерно такое выполни в пустой базе с тем же мд, что и в рабочей:
ALTER TABLE D:\Base\RA123 ALTER COLUMN SP123 char(13); update D:\Base\RA123 set SP123 = $ВидДокумента.ТвоёКакоеБыло+Left(SP123,9); ALTER TABLE D:\Base\RG123 ALTER COLUMN SP123 char(13); update D:\Base\RG123 set SP123 = $ВидДокумента.ТвоёКакоеБыло+Left(SP123,9); ну и переиндексируй потом (в той же сторонней чистой базе, закинув туда 2 эти таблички) имена и пути свои подставишь. |
|||
22
Ёпрст
01.08.11
✎
13:27
|
(20) еще как!
:) |
|||
23
VoditelKobyly
01.08.11
✎
13:29
|
(22) Скажи версию драйвера, которую используешь. У меня вроде ошибку выдавало. Но что-то похоже уже тебе верю больше чем себе. Надо будет попробовать снова.
|
|||
24
Ёпрст
01.08.11
✎
13:30
|
(23) 9.2
|
|||
25
Ёпрст
01.08.11
✎
13:32
|
(23) я ж проверил..работает :)
|
|||
26
Ёпрст
01.08.11
✎
13:34
|
http://www.microsoft.com/download/en/details.aspx?id=14839
этот что ли стоит, на помню.. от 9 фокса |
|||
27
VoditelKobyly
01.08.11
✎
13:35
|
(25). Так это в корне меняет дело! Щас под рукой нет, но у меня вроде 9.1 был.
|
|||
28
Aristo
01.08.11
✎
13:36
|
(21) все понял только не right ли там вместо left?
|
|||
29
Ёпрст
01.08.11
✎
13:42
|
(28) нет. поле "вправо" расширится.
И это, делай так лучше - копиряешь RG и RA этого регистра + мд + дд в отдельную папку, делаешь запрос из (21) в рабочей базе, пути указываешь к RA и RG те, что в новой папке, далее переиндексируешься из новой базы, созданной из новой папки и копиряешь Ra и RG этого регистра взад вместе с новыми индексными файлами.. наслаждаешься. |
|||
30
Ёпрст
01.08.11
✎
13:43
|
+29 ну и на всякий, старые RG и RA сохраняешь.. на память.
|
|||
31
Ёпрст
01.08.11
✎
13:44
|
+29 и не забудь в мд и дд обновить, тупо сделав это в новой папке, предварительно выкинув оттуда все регистры (включая вновь созданные)
|
|||
32
Aristo
01.08.11
✎
13:45
|
(31) да я 2 копии полные сделаю, вопрос 5 минут.
|
|||
33
Ёпрст
01.08.11
✎
13:47
|
(32) дело не в копии, нужно в пустой базе поиметь измененный мд и дд, чтоб их потом подменить в рабочей.
|
|||
34
Ёпрст
01.08.11
✎
13:48
|
+33 а на пустой базе процесс реструктуризации займет меньше секунды.
|
|||
35
Mikeware
01.08.11
✎
13:48
|
(33) разобрать-собрать
|
|||
36
Aristo
01.08.11
✎
13:51
|
(32) это я понимаю. уже делаю
|
|||
37
Ёпрст
01.08.11
✎
13:51
|
(35) даже не знаю, что быстрее будет :)
Еще ж и словарик тогда в 2-х местах блокнотом править.. а тут пофигуратор всё сам сделает. :) |
|||
38
Aristo
01.08.11
✎
14:01
|
(37) я не лезу в блокнот в DD, выгода времени - копеечная даже если будет. Проигрыш если косякнул - больше.
|
|||
39
Aristo
01.08.11
✎
14:03
|
Все ок, всем спасибо :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |