Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Отключить логгирование UPDATE  [new]
babona
Member [заблокирован]

Откуда: Батуринск
Сообщений: 1816
Появилась ли возможность отключить запись в журнал транзакций при выполнении инструкции UPDATE на постоянной физ. таблице?
Ну не нужно мне для отдельных операций логгирование, а #tmp использовать не всегда удобно.
2 окт 14, 00:33    [16647782]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
babona,

Используйте ту СУБД которая не пишет лог вообще.
И кстати, при обновлении #tmp лог все равно пишется.
2 окт 14, 00:55    [16647799]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
Glory
Member

Откуда:
Сообщений: 104751
babona
Ну не нужно мне для отдельных операций логгирование

Журналирование нужно серверу. Ваше отношение к журналированию серверу безразлично.
2 окт 14, 09:27    [16648272]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
babona
Member [заблокирован]

Откуда: Батуринск
Сообщений: 1816
Glory,
ну в Oracle я могу опцию nolog юзать, если на уровне сервера не включено логгировать всегда. MSSQL пока не озадачился или чемодан денег никто не занес


Mind,
сейчас работаем на том что есть. И я против зоопарков
2 окт 14, 11:23    [16649029]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
Glory
Member

Откуда:
Сообщений: 104751
babona
ну в Oracle я могу опцию nolog юзать,

И где вы прочитали, что эта опция отключает журналирование ?
2 окт 14, 11:30    [16649079]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
o-o
Guest
Mind
Используйте ту СУБД которая не пишет лог вообще.

babona
Mind,
сейчас работаем на том что есть. И я против зоопарков

это не про зоопарк, это скорее саркастический совет использовать например эксель для хранения данных
читаем тут: Write-ahead logging
для тех, кому лень ходить по ссылкам, цитирую:

In computer science, write-ahead logging (WAL) is a family of techniques for providing atomicity and durability (two of the ACID properties) in database systems.

In a system using WAL, all modifications are written to a log before they are applied. Usually both redo and undo information is stored in the log.

The purpose of this can be illustrated by an example. Imagine a program that is in the middle of performing some operation when the machine it is running on loses power. Upon restart, that program might well need to know whether the operation it was performing succeeded, half-succeeded, or failed. If a write-ahead log were used, the program could check this log and compare what it was supposed to be doing when it unexpectedly lost power to what was actually done. On the basis of this comparison, the program could decide to undo what it had started, complete what it had started, or keep things as they are.
2 окт 14, 11:44    [16649168]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8570
babona
Появилась ли возможность отключить запись в журнал транзакций при выполнении инструкции UPDATE на постоянной физ. таблице?
Ну не нужно мне для отдельных операций логгирование, а #tmp использовать не всегда удобно.


Не появилась и не появится никогда. Вы неправильно понимаете механизм работы MS SQL.
2 окт 14, 12:24    [16649534]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
o-o
Guest
Владислав Колосов
babona
Появилась ли возможность отключить запись в журнал транзакций при выполнении инструкции UPDATE на постоянной физ. таблице?
Ну не нужно мне для отдельных операций логгирование, а #tmp использовать не всегда удобно.


Не появилась и не появится никогда. Вы неправильно понимаете механизм работы MS SQL.

MS SQL only???
т.е. и вы тоже считаете, что тот же оракл не пишет сперва в журнал?
2 окт 14, 12:48    [16649741]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8570
Дык MySQL лишь сравнительно недавно начал писать.
2 окт 14, 14:11    [16650403]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
babona
Member [заблокирован]

Откуда: Батуринск
Сообщений: 1816
Чтобы мне ни говорили, а фича полезная.
Накой мне лог, когда UPDATE в той таблице, которую перезалить - дело 5 минут, и ACID для нее нужно.
2 окт 14, 14:25    [16650515]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8570
babona, нет, выключение журнала противоречит задаче поддержания целостности данных. Если нужно негарантированное хранилище - используйте внешнее.
2 окт 14, 14:30    [16650549]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
Glory
Member

Откуда:
Сообщений: 104751
babona
Чтобы мне ни говорили, а фича полезная.

Мда.
NOLOGGING can be used to minimize the amount of redo generated by Oracle. Only the following operations can make use of nologging:
SQL*Loader in direct mode
INSERT /*+APPEND*/ ...
CTAS
ALTER TABLE statements (move/add/split/merge partitions)
CREATE INDEX
ALTER INDEX statements (move/add/split/merge partitions)
Т.е. опция эта _уменьшает_ число журналируемой информации. А не отключает ее совсем.
Причем делает это для bulk insert действий.
Т.е. делает все тоже самое, что из Bulk-Logged Recovery и соответстующе параметры в INSERT/CREATE INDEX в MSSQL

babona
Накой мне лог, когда UPDATE в той таблице, которую перезалить - дело 5 минут, и ACID для нее нужно.

Серверу пофиг на ваши желания. Он поддерживает ACID не для вас.
Если вам не нужен ACID, то выберите другой сервер
2 окт 14, 14:31    [16650559]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
o-o
Guest
babona,

это что бы вы ни говорили, а оракл абсолютно ВСЕ логирует.
почитайте лучше про свою супер-опцию, какое именно "логирование" она отключат
2 окт 14, 14:32    [16650566]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
babona
Member [заблокирован]

Откуда: Батуринск
Сообщений: 1816
Почему не сделать тип таблиц или опцию в создании таблицы без логгирования ?
В отдельных случаях важна только скорость, если все данные пропадут в таблице - то ничуть не вздрогну, т.к. это рабочая таблица.

...И применять инструмент тот который нужен, когда скальпель, когда кувалду.
2 окт 14, 16:06    [16651331]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
iap
Member

Откуда: Москва
Сообщений: 47083
babona,

используйте табличные переменные
2 окт 14, 16:09    [16651356]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4831
Владислав Колосов
Не появилась и не появится никогда. Вы неправильно понимаете механизм работы MS SQL.


Не просто появятся, а уже появилась в SQL 2014 на INMEMORY таблицах типа SCHEMA_ONLY, которые работают по другому механизму.

Возможно ТС имеет дело с ситуацией, где на такую технологию целесообразно перейти.

http://msdn.microsoft.com/en-us/library/dn553122.aspx

SCHEMA_ONLY (non-durable table)
This option ensures durability of the table schema, including indexes. When SQL Server is restarted, the non-durable table is recreated, but starts with no data. (This is unlike a table in tempdb, where both the table and its data are lost upon restart.) A typical scenario for creating a non-durable table is to store transient data, such as a staging table for an ETL process. A SCHEMA_ONLY durability avoids both transaction logging and checkpoint, which can significantly reduce I/O operations.

Также добавлю, что на SCHEMA_AND_DATA (durable table) таблицах лог пишется, ноесли вы используете транзакцию, то он пишеться только в самом конце в момент фиксации транзации. Если вы сделали несколько обновлений одной записи, то писаться в лог будет только последний.
2 окт 14, 16:15    [16651395]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
babona
Member [заблокирован]

Откуда: Батуринск
Сообщений: 1816
та блин.......
про INMEMORY таблицы типа SCHEMA_ONLY знаю,
но не всегда богаты RAM-памятью или таблицы большие
2 окт 14, 16:25    [16651452]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4831
babona
та блин.......
про INMEMORY таблицы типа SCHEMA_ONLY знаю,
но не всегда богаты RAM-памятью или таблицы большие


Может вам на SSIS в DATA FLOW вашу задачу решать?
2 окт 14, 16:28    [16651466]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
babona
Member [заблокирован]

Откуда: Батуринск
Сообщений: 1816
Бугагашки

через DataFlow гонять объемища
или расчетно-аналитические задачи делать - такой трэш из квадратиков будет
2 окт 14, 17:37    [16651947]     Ответить | Цитировать Сообщить модератору
 Re: Отключить логгирование UPDATE  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4831
babona
Бугагашки

через DataFlow гонять объемища


300 лямов я на днях прогонял без проблем

Может вам утилиту на C++ написать. Или тулзу какую погуглить. Просто непонятно, что именно вы делаете, поэтому разговор ни о чём. Может у вас там OLAP напрашивается.
2 окт 14, 17:58    [16652063]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить