|
Зачем нужна реструктуризация? | ☑ | ||
---|---|---|---|---|
0
Deon
19.08.14
✎
09:35
|
Расскажите, пожалуйста, какой профит?
К примеру, добавил я реквизит, таблица реструктуризируется. Но оно бы работало и без реструктуризации. В чем смысл? |
|||
1
Maxus43
19.08.14
✎
09:41
|
>>Но оно бы работало и без реструктуризации.
почему? Это изменение структуры таблиц. У тебя в СУБД такой колонки в табоице нет, грубо говоря. Вот при реструктуризации - сами таблицы и меняет |
|||
2
Deon
19.08.14
✎
09:45
|
(1) Почему тогда нельзя просто добавить новую колонку в уже имеющуюся таблицу в БД? Зачем именно создавать новую, а потом в неё копировать все данные?
|
|||
3
ДенисЧ
19.08.14
✎
09:46
|
(2) руки кривые потому что.
|
|||
4
shuhard
19.08.14
✎
09:47
|
(2) можно
но без индексов учетная система загнётся |
|||
5
ДенисЧ
19.08.14
✎
09:49
|
(4) А индексы тут каким боком??
|
|||
6
Maxus43
19.08.14
✎
09:50
|
(2) имхо просто сделано универсально... понять и простить (с)
|
|||
7
Deon
19.08.14
✎
09:50
|
(4) Индексы субд перестроит сама, я в неё верю.
|
|||
8
Deon
19.08.14
✎
09:51
|
Я могу предположить, что это сделано для дефрагментации, чтобы данные не были размазаны по файлу БД. Небольшой выигрыш в быстродействии.
Зачем может быть ещё? |
|||
9
shuhard
19.08.14
✎
09:51
|
(7) а она в тебе не верит
|
|||
10
Maxus43
19.08.14
✎
09:52
|
(7) а кто скажет субд что это поле надо индексировать? в какой именно индекс (кластерны и др)?
|
|||
11
Maxus43
19.08.14
✎
09:53
|
Вся структура таблиц меняется при реструктуризации. Все мелочи и нюансы, про которые люди тупо забудут, а железка не догадается
|
|||
12
Irbis
19.08.14
✎
09:53
|
Я сильно отстал от жизни но помнится в заголовке файла писалось смещение в байтах или ещё в чём. Добавив колонку мы меняем это самое смещение и к каждому элементу должны приписать значение нового реквизита. Как тут без реструктуризации.
|
|||
13
Deon
19.08.14
✎
09:55
|
(11) Какая связь между копированием всех данных и изменением структуры таблиц?
|
|||
14
shuhard
19.08.14
✎
09:58
|
(13) в 100% флюдорастическом топике связей нет и быть не может
как платформа работала так и будет работать |
|||
15
Maxus43
19.08.14
✎
09:58
|
(13) ты частный случай рассматриваешь, добавление простого реквизита. Случаи бывают разные. Копирование Нужных данных идёт. Не всегда они все нужные (случаи удаления реквизитов, изменение типа и прочее). Имхо.
Затраты на удаление записей например будут больше, чем копирование с последующим дроп тэйбл старой. Тут надо конечно смотреть |
|||
16
Maxus43
19.08.14
✎
10:00
|
(12) отстал... на файловых никто не работает))
|
|||
17
Deon
19.08.14
✎
10:02
|
(15) Вот смотри. Если, допустим, ваять БД руками, то мы добавляем колоночки в таблицы, удаляем колоночки, меняем индексы как нам хочется. И СУБД там как-то что-то само с данными делает, и всё работает.
Но при такой работе для каких целей нам придется создать точную копию какой-либо таблицы и скопировать в неё все данные? |
|||
18
Maxus43
19.08.14
✎
10:05
|
(17) я не разработчик платформы, но верю в МногоУважаемогоБорисаИСергеяНуралиева, не просто так они сделали именно эдак.
Или ты надеешся на мисте познать истину? Моё имхо - в (6) |
|||
19
Asmody
19.08.14
✎
10:06
|
(17) а БД в твоем случае наделена магическими способностями?
Добавление поля в таблицу — далеко не тривиальная задача, особенно, если таблица большая. |
|||
20
Maxus43
19.08.14
✎
10:08
|
(19) добавление то ещё ладно... а вот удаление типа из составного - тут никакая СУБД не проймёт, там же 3-4 колонки на тип составной
|
|||
21
Deon
19.08.14
✎
10:08
|
(19) В чем же нетривиальность? Вошел я в SQL Server Management Studio и легко добавил 3-4 колонки в любую таблицу.
|
|||
22
Asmody
19.08.14
✎
10:08
|
Просто открой книжку по MSSQL и почитай как хранятся записи таблиц. И что происходит под капотом
|
|||
23
Ndochp
19.08.14
✎
10:08
|
(20) Сформулируем иначе, добавление поля (двух полей для ссылочного типа) в таблицу SQL средствами MSSQL занимает столько же времени?
|
|||
24
Deon
19.08.14
✎
10:10
|
(22) Т.е. суть таки в дефрагментации?
|
|||
25
Maxus43
19.08.14
✎
10:11
|
(24) скуль хранит данные постранично. каждая страница фиксированного размера... короче там это. нанотехнологии.
|
|||
26
Deon
19.08.14
✎
10:11
|
(25) Хорошо хорошо. И что? )
|
|||
27
Maxus43
19.08.14
✎
10:13
|
(26) и всё)
И чего к скули привязались? СУБД много разных поддерживается. Вариант с созданием новой таблицы - универсальный для любой СУБД |
|||
28
Deon
19.08.14
✎
10:13
|
(27) А какие-то СУБД не позволяют тупо добавить колонку в уже имеющуюся таблицу с данными?
|
|||
29
neckto
19.08.14
✎
10:13
|
Имхо, суть в том, что добавление реквизита должно выполняться в транзакции и в любой момент должна быть возможность откатить ее. Фиксация транзакции - добавление записей в таблицу Config.
А теперь, если произошел сбой до добавления записи в Config, транзакция как бы сама собой откатывается. Config еще ничего не знает о новой таблице (копии исходной таблицы) - структура данных не нарушена. |
|||
30
Deon
19.08.14
✎
10:15
|
(29) Да, это разумно
|
|||
31
Maxus43
19.08.14
✎
10:15
|
(28) давай более сложные случаи, что за примитив с добавлением реквизита?
|
|||
32
Deon
19.08.14
✎
10:16
|
(31) Удаление 3х колонок от реквизита составного типа. Суть-то не меняется
|
|||
33
РенеДекарт
19.08.14
✎
10:16
|
(24)>Я могу предположить, что это сделано для дефрагментации
- совершенно верно. Плюс просто лишний раз шерстит базу 1с на предмет структуры таблиц, мало ли что там поломается... (22)>Просто открой книжку по MSSQL - и каким боком "MSSQL" к файловой реструктуризации? А она там есть. |
|||
34
ptiz
19.08.14
✎
10:16
|
В 1С решили, что надежнее пересоздать таблицу заново. Думаю - правильно сделали, иначе кривизна рук их программистов могла привести к тому, что при добавлении/удалении реквизитов что-нибудь плохое могло случиться с базой.
В 8.3 додумались до фоновой реструктуризации, но всё равно приходится всех выгонять для окончательного обновления. |
|||
35
tdm
19.08.14
✎
10:16
|
(0) >>Но оно бы работало и без реструктуризации.
вспоминаю времена 7.7 помню умельцев которые базу обновляли копированием туда нового *.md - "а чо оно же работает)" имхо суть в том что наша 1с платформа анализирует ту структуру данных что имеем и ту что хотим получить ну и принимает решение за нас...на эту тему еще можно вспомнить что у нас например явного описания типа переменных нет и т.д. и т.п. - 1с многое берет на себя))потому и 1с-ников за программистов не считают) |
|||
36
РенеДекарт
19.08.14
✎
10:17
|
(31) во времена еще не совсем улета 1с в дебри Такси она сама говорила - реструктуризация нужна лишь для упорядычевания расположения талиц. Все.
|
|||
37
Deon
19.08.14
✎
10:19
|
(36) Жаль не сделают эту шляпу опциональной. База 100Гб реструктуризируется сутки. Утомила.
|
|||
38
РенеДекарт
19.08.14
✎
10:19
|
(35)>имхо суть в том что наша 1с платформа анализирует ту структуру данных что имеем и ту что хотим получить ну и принимает решение за нас
- это как все работает, объясните? >явного описания типа переменных нет - потому что хранится все не так явно. >1с многое берет на себя - много в платформе сделано "по умолчанию", причем замалчивание настолько секретное, что ЦРУ позавидует. Отсюда и 90% проблем и ошибок в 1С. |
|||
39
Asmody
19.08.14
✎
10:20
|
(21) а самолет тоже просто работает — сел и полетел
|
|||
40
РенеДекарт
19.08.14
✎
10:20
|
(37) галочку отключите
|
|||
41
Deon
19.08.14
✎
10:21
|
(40) У меня переход БП с 2.0 на 3.0.
|
|||
42
РенеДекарт
19.08.14
✎
10:21
|
(39) вообще, все базы так и работают - сел и полетел. И только 1с не может добавить "руками программиста" колонку в таблицу БД.
|
|||
43
РенеДекарт
19.08.14
✎
10:22
|
(41) так это опять прихоть/принудительно-добровольно 1С - все, как и с платформой.
|
|||
44
Deon
19.08.14
✎
10:22
|
(39) Паспортный контроль утомляет так же, как и реструктуризация. Но эту тему я подниму чуть позже.
|
|||
45
РенеДекарт
19.08.14
✎
10:23
|
*90% платформенных ошибок
|
|||
46
tdm
19.08.14
✎
10:24
|
(38) - это как все работает, объясните?
- много в платформе сделано "по умолчанию", причем замалчивание настолько секретное, что ЦРУ позавидует. я в 1с не работаю и в "секреты" не посвящен))...а было бы интересно кстати в дебри залезть)но тут имхо мы где-то на грани лицензионнного соглашения балансируем) |
|||
47
РенеДекарт
19.08.14
✎
10:24
|
(41)> У меня переход БП с 2.0 на 3.0.
- вы смелый. По-моему, проблема реструктуризации - далеко не самая главная будет у вас в ближайшие полгода. Даже не в сотне. |
|||
48
РенеДекарт
19.08.14
✎
10:25
|
(46) потому и закрыто, что сами плохо понимают.
|
|||
49
РенеДекарт
19.08.14
✎
10:27
|
Поэтому начинают объяснять ".. вот SQL работает так.. блокировки... оптимизатор..."
Ты объясни, как работает 1С В КАЖДОМ КОНКРЕТНОМ случае, и что ожидать на выходе. А про SQL можно у Микрософт все прочитать. |
|||
50
ДенисЧ
19.08.14
✎
10:28
|
(49) У тебя с этим проблемы? Ты хочешь об этом поговорить?
|
|||
51
РенеДекарт
19.08.14
✎
10:28
|
(50) ты можешь?
|
|||
52
Deon
19.08.14
✎
10:30
|
(47) Не первый раз, сдюжим. Ещё б реструктуризация так не тормозила, было б куда веселее.
|
|||
53
Maxus43
19.08.14
✎
10:30
|
тема слилась. Пришёл ненавистник своего рабочего инструмента (1с), своей профессии и всеговсего что связано с нуралиевыми
|
|||
54
ДенисЧ
19.08.14
✎
10:31
|
(51) Я могу объяснить любое поведение 1с, которое меня затрагивает.
Но вот _тебе_ я ничего объяснять не буду. |
|||
55
РенеДекарт
19.08.14
✎
10:32
|
тема слилась давно - лет 10 назад, когда в 1С пришли "оптимисты, шапкозакидатели, все-ни-по-чем, легко-решается-в-1С"
|
|||
56
РенеДекарт
19.08.14
✎
10:33
|
(54)>Я могу объяснить любое поведение 1с
- конечно-конечно. Вот так: "1С так работает". И троектратное "да здравствует!" в конце. Спасибо, все все поняли. |
|||
57
РенеДекарт
19.08.14
✎
10:35
|
(54)>Но вот _тебе_
- ты с _собой_ сначала искренне побеседуй, а потом будешь выделять подчеркиванием остальных. |
|||
58
ДенисЧ
19.08.14
✎
10:35
|
(56) намекаю. У меня дядя на бисерной фабрике не работает.
И на апельсиновой плантации тоже. |
|||
59
ptiz
19.08.14
✎
10:41
|
(37) Не должна так долго база реструктуризироваться. Какой регистр так долго обрабатывается?
|
|||
60
rendez-vous
19.08.14
✎
10:41
|
(2) Для надежности.
|
|||
61
РенеДекарт
19.08.14
✎
10:45
|
(59) реструктуризация - самая длительная операция в ТИИ.
Если данных много - будет долго. |
|||
62
ptiz
19.08.14
✎
10:49
|
(61) Но не сутки же на базе всего в 100 гб !
|
|||
63
РенеДекарт
19.08.14
✎
11:09
|
(62) если без ошибок - то почему бы и нет.
Опять же - никто не в силах объяснить (даже если сильно-сильно надуть щеки и сделать умный вид, написав "я знаю"), что там происходит, и почему где-то быстро, а тут - долго. |
|||
64
Deon
19.08.14
✎
12:08
|
(59) Долго документы и регистр Хозрасчетный. Может и не сутки, может часов 10.
|
|||
65
Deon
19.08.14
✎
12:10
|
(60) А в чем ненадежность в (2)?
|
|||
66
Lama12
19.08.14
✎
12:21
|
(0) Могу предположить что простое добавление реквизита реализовано в корп версии платформы. Там можно "на лету" менять структуру данных.
А реструктуризация для нищих :) |
|||
67
VladZ
19.08.14
✎
12:25
|
(66) Ась?
|
|||
68
tdm
19.08.14
✎
12:27
|
(66) можно подробнее ?
|
|||
69
ДенисЧ
19.08.14
✎
12:29
|
(66) На лету нельзя. Можно в фоне, с кратковременным выгоном зверей в конце, на финальной стадии
|
|||
70
rendez-vous
19.08.14
✎
12:36
|
(65) Библиотека XBase нечего не знает про транзакции. Такую реструктуризацию сделали для файлового варианта. А потом она (реструктуризация) в том же виде перекочевала на клиент-серверный вариант. Где она конечно же не нужна. Тут автор прав.
|
|||
71
МихаилМ
19.08.14
✎
13:27
|
реструктуризацию (пересоздание таблиц с копированием) можно отключить с помощью ddl триггеров и подменой таблиц на пустые.
|
|||
72
Lama12
19.08.14
✎
13:30
|
(69) Вот ведь блин. А тут написано http://v8.1c.ru/news/newsAbout.jsp?id=9320 фоновое обновление...
Я уж обрадовался. |
|||
73
Deon
19.08.14
✎
13:45
|
(71) Подменять таблицы всей базы как-то шибко геморно
|
|||
74
МихаилМ
19.08.14
✎
14:02
|
(73)
естественно в триггере. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |