Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ну опять про LOG...
|
|||
|---|---|---|---|
|
#18+
А вот ежели 1000 раз выполнить команду Delete from SomeTable where 1=2 (то есть когда в самих данных непосредственно никаких изменений не происходит, но есть множество команд, которые теоретически могут повлиять на данные), то факт выдачи этих команд как-то фиксируется в логе или нет? Я почему это спрашиваю... У меня висит задание, которое каждую минуту опрашивает одну из таблиц и выдает подобные команды, которые в 99,9% случаев реально ничего в базе не изменяют. Однако, размер лога как-то подозрительно быстро разрастается, хотя каких-либо массовых модификаций данных не производится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2001, 10:15 |
|
||
|
Ну опять про LOG...
|
|||
|---|---|---|---|
|
#18+
В вашем случае всё журналируется и иначе быть не могло, исходя из смысла транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2001, 11:09 |
|
||
|
Ну опять про LOG...
|
|||
|---|---|---|---|
|
#18+
Исходя из того, что размер лога увеличивается - да. А вот исходя из того, что я вычитал о транзакциях в литературе, этого быть не должно. Любые команды, которые приводят либо к выборке, либо к модификации хотя бы одной записи хотя бы одной таблицы изменяют блокировки страниц, на которых эти данные находятся. Это приводит к модификации по крайней мере системной таблицы SYSINDEXES (хотя бы на время). Если производилась модификация данных, то в лог переписываются страницы в том виде, в котором они были до модификации - и там уже модифицируются. Если производился голый SELECT (вот тут я немного плаваю) - возможно, в лог переписываются страницы, относящиеся к изменившимся записям SYSINDEXES на время выполнения разделяемой блокировки на чтение. А, возможно, страницы SYSINDEXES используются самим механизмом закрепления/отката транзакций и в лог не пишутся. Я исхожу из худшего - допустим, пишутся и просто по SELECT. А если делается SELECT, который не выбирает ни одной записи? Или Update, условие WHERE которого отфильтровывает 0 записей? Я полагал, что блокировка распространяется только на те записи с которыми оперирует запрос. Если записей, с которыми оперирует запрос много, блокировка может быть расширена с уровня записей на уровень страниц. А если их очень много, то со страниц она может быть расширена на таблицу в целом. А если их вообще нет? То блокировок вообще не должно происходить? Нет записей - нет страниц, на которых находятся записи этих страниц. Нет факта модификации SYSINDEXES. Что тогда пишется в лог? Просто информация о том, что пусканули холостую операцию? А зачем это нужно? Ее хоть откатывай, хот закрепляй - ничего не изменится. Просветите, может я что-то неправильно понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2001, 18:18 |
|
||
|
Ну опять про LOG...
|
|||
|---|---|---|---|
|
#18+
То, что Вы написали, это только вершина айсберга Вы забыли, что все ваши действия, от коннекта до дизконнекта могут вносить изменения в системных таблицах, а, заодно, и действия сервера приплюсуйте... Впрочем, я ещё не встречал человека, который бы смог утверждать, что представляет себе работу журнала во всех деталях. Для этог надо досканально знать движок. К тому же, почти всё, что мы знали про журнал в 7.0, в 2К уже работает иначе. Попробуй теперь разберись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2001, 21:02 |
|
||
|
Ну опять про LOG...
|
|||
|---|---|---|---|
|
#18+
Спасибо, Александр. Вы, конечно правы. А вот я в своих рассуждениях допустил ошибку. Тот механизм блокирования, который я описал, может обеспечить только Level2 - No nonrepeatable read из четырех уровней изоляции транзакций по стандарту ANSI. MS SQL-сервер обеспечивает Level3 - No phantom. Для того же, чтобы это стало возможным, при выдаче люой команды Update или Delete должна блокироваться вся таблица, а не только те записи, которые подвергаются модификации. Вот из этой-то части спины ноги и произрастают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2001, 11:00 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1826197]: |
0ms |
get settings: |
4ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
25ms |
get topic data: |
6ms |
get first new msg: |
3ms |
get forum data: |
1ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 285ms |

| 0 / 0 |
