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