|
Изменение имен таблиц SQL | ☑ | ||
---|---|---|---|---|
0
Tochka
05.12.11
✎
08:04
|
Добрый день.
У меня есть самописная конфигурация, где перемешаны 1с и запросы непосредственно из SQL. Проблема в том что у нас поехала структура таблиц. Вопрос как можно 1с объяснить что это поле в таблице теперь зваться по другому. |
|||
1
el-gamberro
05.12.11
✎
08:05
|
Надо было использовать метапарсер а не напрямую писать названия таблиц
|
|||
2
el-gamberro
05.12.11
✎
08:06
|
А это 8.2...
|
|||
3
sda553
05.12.11
✎
08:07
|
(0) Да никак теперь, сочувствую. Надо было действительно названия таблиц "вычислять" а не писать
|
|||
4
Tochka
05.12.11
✎
08:18
|
к сожалению такой вариант меня тоже не устраивает потому что я из 1с делаю запрос к другой.
|
|||
5
Tochka
05.12.11
✎
08:18
|
(2) Нет это 8.1
|
|||
6
Alex375
05.12.11
✎
08:19
|
(4) к другой 1С? Если так, то вычислять можно.
|
|||
7
vde69
05.12.11
✎
08:20
|
нефиг перемешивать было.
Вообще я не понимаю зачем в восьмерке прямые запросы |
|||
8
Александр_
Тверь 05.12.11
✎
08:41
|
(7) вот зачем именно тоже не знаю, но то что даныне можно получать (и изменять) в некоторых ситуациях существенно быстрее - это факт.
|
|||
9
vde69
05.12.11
✎
08:45
|
(8) главный плюс восьмерки - это трех звенка с RLS, написав один единственый прямой запрос мы херим все приемущества восьмерки, по тому как паролик от скуля становится доступным.
поубивал-бы сразу :) |
|||
10
Reaper_1c
05.12.11
✎
09:11
|
Ветка посвящается всем балбесам нарушающим лицензионное соглашение. Никто вас за это не засудит - просто эти поделки с прямым доступом разваливаются как карточный домик.
|
|||
11
Ferz
05.12.11
✎
09:15
|
Select BinaryData From Params Where Filename = 'DbNames'
|
|||
12
VVi3ard
05.12.11
✎
09:16
|
(7) Например нужно изменить реквизит регистра накопления в котором 89 000 000 строк. Прямым Update делается за 4 минуты, через НаборЗаписей даже сложно представить.
|
|||
13
AlexNew
05.12.11
✎
09:18
|
(10) Зачем так сразу? Изобретателям, 1С то тоже учить надо, а SQL вроде знаем:)
|
|||
14
vde69
05.12.11
✎
09:23
|
(12) нужно - делай, только не из 1с а по нормальному из консоли SQL.
|
|||
15
vde69
05.12.11
✎
09:30
|
(12) кстати я сомневаюсь в том что прямой апдейт 90 лямов записей будет идти 4 минуты, думаю будет больше... минут 15.
счас проверю, запустил примерно такой апдейт только по числовому полю |
|||
16
Axel2009
05.12.11
✎
09:33
|
(15) зависит от дисков =)
|
|||
17
Tochka
05.12.11
✎
09:33
|
(11) Ferz там это всё дело закодировано, а как можно это раскодировать. И если я там после изменений закодирую обратно, то всё ли нормально будет?
|
|||
18
Ferz
05.12.11
✎
09:52
|
(17) открыть можно Unpack`ом
открыть и отредактировать можно Ei http://main.1c-ei.ru/Home/help/objectdb Действия - Дополнительно - Объекты базы данных |
|||
19
Ferz
05.12.11
✎
09:55
|
(17) да все будет ОК, если таблицы с новыми именами существуют
|
|||
20
vde69
05.12.11
✎
10:05
|
(15)+ 20 минут апдейт поля типа BIT (не индексированого), для 1с апдейт многостраничного Binary + его распокавать/запоковать + обновить индексы, на моем железе будет минут 40-50.
Апдейт средствами 1с - будет часа 2-3... большого выигрыша не вижу!!! |
|||
21
Axel2009
05.12.11
✎
10:14
|
(20) 90млн записей регистра накопления 3 часа? посмеялся
|
|||
22
rs_trade
05.12.11
✎
10:24
|
(21) он нолики забыл дописать. 20-30 часов боле похоже на правду.
|
|||
23
vde69
05.12.11
✎
10:24
|
(21) о_О а прямым итоги пересчитывать не нужно будет? мы говорили об ОДНОЙ таблице.
но вообще в 1с можно и отключить пересчет итов при записи :) кстати это делается автоматически при загрузки УРБД |
|||
24
vde69
05.12.11
✎
10:26
|
(22)(21) я работаю с такими обьъемами не первый год, даже в 7.7 были таблички такого обьема....
|
|||
25
Axel2009
05.12.11
✎
10:26
|
(23) разовый пересчет итогов регистра будет идти порядка 30-60 минут..
|
|||
26
rs_trade
05.12.11
✎
10:30
|
(24) да никто не сомневается. но вот про 2-3 часа загнул. не работает 1С со скулем с такой скоростью.
|
|||
27
vde69
05.12.11
✎
10:32
|
(26) работает, главное что-бы структура метаданных была правильная (с правильными индексами и типами, что-бы кластерный индекс полность перекрывал селекты)
|
|||
28
Axel2009
05.12.11
✎
10:39
|
(27) ну раз у тебя "такие" объемы. запусти на тестовой базе апдейт одного регистра через
"выбрать различные регистратор из регистрнакопления.рн" пока выборка.следующий() цикл нз = регистрынакопления.рн.создатьнаборзаписей(); нз.Отбор.Регистратор.Установить(ссылка) Прочитать() для каждого строка из НЗ цикл ... конеццикла записать(истина); конеццикла; а мы подождем до обеда |
|||
29
rs_trade
05.12.11
✎
10:40
|
(27) 1С в цикле крутит данные на сервере и инсерит по одной строчке. Это всяко медленней чем отправить скуль серверу один запрос на обработку всех записей.
|
|||
30
vde69
05.12.11
✎
10:42
|
так будет лучше :)
нз = регистрынакопления.рн.создатьнаборзаписей(); "выбрать различные регистратор из регистрнакопления.рн" пока выборка.следующий() цикл нз.Отбор.Регистратор.Установить(ссылка) Прочитать(); тз=нз.Выгрузить(); тз.ЗаполнитьКолонку("имя", значение); нз.Загрузить(тз); записать(истина); конеццикла; |
|||
31
Axel2009
05.12.11
✎
10:44
|
(30) да, 1% ты выйграл на этом ;)
|
|||
32
Reaper_1c
05.12.11
✎
10:47
|
Ежели у вас возникает потребность поменять аналитику в 90 мегазаписях за 30 минут - значит в ДНК у вас неисправимая ошибка...
|
|||
33
vde69
05.12.11
✎
10:49
|
ну вот так уже ближе к оптимальному будет
регистрынакопления.рн.УстановитьИспользованиеИтогов(Ложь); нз = регистрынакопления.рн.создатьнаборзаписей(); "выбрать различные регистратор из регистрнакопления.рн" пока выборка.следующий() цикл нз.Отбор.Регистратор.Установить(ссылка) Прочитать(); тз=нз.Выгрузить(); тз.ЗаполнитьКолонку("имя", значение); нз.Загрузить(тз); НЗ.ОбменДанными.Загрузка = истина; НЗ.записать(истина); конеццикла; регистрынакопления.рн.УстановитьИспользованиеИтогов(Истина); регистрынакопления.рн.ПересчитатьИтоги(); |
|||
34
hhhh
05.12.11
✎
10:52
|
(31) в общем похоже всё дело в том, что тупые sql-щики не могут написать элементарной программки на 1С, поэтому всё фигачат прямыми запросами.
|
|||
35
Axel2009
05.12.11
✎
10:58
|
(34) ну я когда писал "нетленку" по перегрузке данных между базами, то у меня была реализована прямая запись в скуль сервер. так вот, опытным путем выявил, что запись порциями по 50 записей увеличивает скорость на порядочек.
|
|||
36
Tochka
05.12.11
✎
12:57
|
Я конечно извиняюсь что прерываю ваш разговор, но тема вопроса была другая.
И не хрен тут флуд разводит, хотите пообщаться так создавайте свою тему!!!! P.S. Большое спасибо Ferz это единственный человек который ответил по делу. |
|||
37
rs_trade
05.12.11
✎
13:08
|
(36) ок. расходимся.
|
|||
38
Tochka
05.12.11
✎
13:08
|
(18) Ferz, если тебе не сложно поясни что такое Unpack, я нашёл что это есть в Perl и Python, есть более стандартные способы например JScript?
|
|||
39
Ferz
05.12.11
✎
13:11
|
||||
40
Tochka
05.12.11
✎
13:27
|
(39) Ferz, прости за назойливость, но я сейчас нахожусь на стадии когда я сохранил значение этого поля, но как мне получить белее менее нормальную читабельную информацию исходя из этого файла?
|
|||
41
Tochka
06.12.11
✎
07:04
|
Идея такая. Запустить Назначенное задание которое будет проверять структуру БД распределённой базы с центральной.
Мне нужно выяснить как в случае неполадок(один из реквизитов 1с в SQL стал ссылаться на другое поле таблицы) исправить это. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |