| 
    
        
     
     | 
    
    
  | 
Зачем нужна реструктуризация? | ☑ | ||
|---|---|---|---|---|
| 
    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)
 
        естественно в триггере.  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |