Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Идентификатор записи  [new]
Score
Guest
Подскажите пожалуйста, где можно прочитать про то из чего состоит идентификатор на скриншоте 1:155:0

К сообщению приложен файл. Размер - 14Kb
6 янв 14, 14:23    [15381210]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Файл:страница:слот.
6 янв 14, 14:27    [15381224]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
Score
Guest
Гавриленко Сергей Алексеевич,
а можно немного, про что такое слот?
гугление много где упоминает массив слотов, но определения не нашел
6 янв 14, 14:35    [15381248]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Score
Гавриленко Сергей Алексеевич,
а можно немного, про что такое слот?
гугление много где упоминает массив слотов, но определения не нашел
Номер записи на странице.
6 янв 14, 15:00    [15381295]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
Score
Guest
благодарствую
6 янв 14, 15:06    [15381309]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Score,

Чтобы Вас не беспокоили Shared блокировки - почитайте раздел BOL->Index->Row Versioning
6 янв 14, 15:10    [15381317]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
Score
Guest
pkarklin,
я разбираю свой тестовый пример, изучаю блокировки
а чем могут беспокоить Shared блокировки?
6 янв 14, 15:14    [15381327]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Score
а чем могут беспокоить Shared блокировки?


Они могут беспокоить тех, кто хочет что-нибудь изменить, пока Ваш тестовый пример что-то читает.
6 янв 14, 15:19    [15381336]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
Exproment
Member

Откуда:
Сообщений: 416
Это смотря какой уровень изоляции. Если ниже repeatable, то S-локи накладываются только на время чтения, а не до конца жизни транзакции. Ввиду чего мало кому могут мешвть, т.к. очень кратковресенные.
7 янв 14, 17:47    [15384185]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
o-o
Guest
Exproment,
вот мне уже отвечали по поводу Аксесса,
что у него всего-то "хорошие курсоры" открываются при чтении.
там юзеры не открывают транзакции, у них даже нет прав кроме как на чтение.
тем не менее, оставленный да 2 суток комп с открытым Аксессом с читаемой табличкой
на эти 2 суток лишает возможности модификации.
вот
7 янв 14, 17:59    [15384215]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
Exproment
Member

Откуда:
Сообщений: 416
o-o, не вижу причем тут ваша тема ? Вы там даже исходные уровень изоляции не указывали. При любых вычислениях, как только данные прочитаны - S-lock снимается. Даже при простом сканировании.

Главное достоинства версионности для RC заключается не в том, что юзвери могут изменять данные пока их кто-то читает, а в том, что юзвери могут читать старую версию данных пока их кто-то изменяет. Как-то сильно разные вещи. Ввиду чего, это:
pkarklin
Они могут беспокоить тех, кто хочет что-нибудь изменить, пока Ваш тестовый пример что-то читает.

справедливо только для уровней выше RC. Хотя конечно каждый случай уникален)
7 янв 14, 23:42    [15385158]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Exproment
справедливо только для уровней выше RC. Хотя конечно каждый случай уникален)


Причем тут TIL?! Даже при стандартном RC в высоконагруженной системе читатели мешают писателям. Если, это, конечно, не однопользовательская система.
8 янв 14, 00:29    [15385298]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Exproment
Главное достоинства версионности для RC заключается не в том, что юзвери могут изменять данные пока их кто-то читает, а в том, что юзвери могут читать старую версию данных пока их кто-то изменяет.


Главные достоинства версионного режима RC - это отсутствие шаред локов при соблюдении statement level consistency.

Сообщение было отредактировано: 8 янв 14, 00:37
8 янв 14, 00:37    [15385312]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
o-o
Guest
Exproment
o-o, не вижу причем тут ваша тема ? Вы там даже исходные уровень изоляции не указывали.

да там READ COMMITTED, сами попробуйте.
из Аксесса откройте на чтение табличку с сервера не в 3 записи.
S-блокировка будет висеть, пока Аксесс не закроете.
и открывают юзеры, к-ые даже не слышали таких страшных слов, как уровень изоляции.
просто на чтение открыли.
в sys.dm_exec_requests видно, transaction_isolation_level 2

К сообщению приложен файл. Размер - 73Kb
8 янв 14, 02:38    [15385412]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
o-o
там READ COMMITTED
С чего вы решили?
pkarklin
аже при стандартном RC в высоконагруженной системе читатели мешают писателям.
Ну мешают, топорно, но и при версионности они друг другу тоже мешают, только по другому.
В первом случае всё очевидно лежит на процессе организации доступа, и это разрабу показывает явно где надо подрихтовать процесс.
В случае версионности не видно нигде явно, что проц нагружен выкусыванием "какую же версию строки надо прочитать для очередного запроса?". Закапывая проблему.
(О других проблемах я пока молчу)

Это я не первый раз спрашиваю, но не вижу никакого ответа на этот аргумент. Хотя кто-то явно часто напоминает про версионность.
И почему этот некто напоминает так часто - непонятно. "Эксперимент - есть эксперимент"?
А почему M$ не ставит этот уровень изоляции по умолчанию?

Может мне кто-то покажет что возможно я делаю из мухи слона?
pkarklin

PS: Быстро "заткнуть" нуба в его проблеме - принимается. Это очень веский аргумент.
8 янв 14, 03:51    [15385438]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
o-o
Guest
Mnior
o-o
там READ COMMITTED
С чего вы решили?


в sys.dm_exec_requests написано.
что, там наврано?
научите, где еще посмотреть
(профайлер на сессию аксесса тоже выдает READ COMMITTED)
8 янв 14, 08:59    [15385503]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
o-o
Guest
сперва делаю вчерашний запрос из Аксесса:
select *
from AdventureWorks2008R2.Production.WorkOrder

потом иду в профайлере смотреть параметры сессии.
показывают READ COMMITTED.
S-блокировка висит.
в чем подвох?

К сообщению приложен файл. Размер - 109Kb
8 янв 14, 09:23    [15385507]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Mnior,

автор
В первом случае всё очевидно лежит на процессе организации доступа, и это разрабу показывает явно где надо подрихтовать процесс.


Вы имеете ввиду добавить хинт WITH (NOLOCK) или TIL опустить до DR и при этом периодически получать 601 ошибку (Could not continue scan with NOLOCK due to data movement)? Или что-то другое?

автор
В случае версионности не видно нигде явно, что проц нагружен выкусыванием "какую же версию строки надо прочитать для очередного запроса?". Закапывая проблему.


Не заметил какого-либо увеличения потребления CPU при включении READ_COMMITED_SNAPSHOT (сравнительный анализ статистики использования CPU за последние 4 недели (SCOM)). М.б. за счет того, что затраты на "выкусывание версии" компенсируется отсутстивием потребности в использовании Lock Managerа?

автор
Закапывая проблему.


Какую проблему?! Само наличие S блокировок в "обычном" режиме? Код идеален, но локи все равно будут. Где я закапываю проблему?

автор
Это я не первый раз спрашиваю, но не вижу никакого ответа на этот аргумент. Хотя кто-то явно часто напоминает про версионность.
И почему этот некто напоминает так часто - непонятно. "Эксперимент - есть эксперимент"?


Да, именно я часто напоминаю. И буду напоминать. Никаких экспериментов. Использую версионность на практике в высоконагруженных бд довольно приличного объема. Можно, безусловно, бороться переписыванием кода, например, с дедлоками, возникающими при конвертации S блокировок, а можно просто включить RCS, без ущерба производительности и стабильности системы.

автор
А почему M$ не ставит этот уровень изоляции по умолчанию?


Меня удивляет другое. По результатам собеседований за последние несколько лет. Почему никто не использует версионный RC, продолжая хинтовать NOLOCK.

автор
Быстро "заткнуть" нуба в его проблеме - принимается. Это очень веский аргумент.


Какая аргументация удовлетворит высококвалифицированного специалиста?

Сообщение было отредактировано: 8 янв 14, 16:22
8 янв 14, 15:28    [15386391]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
o-o
потом иду в профайлере смотреть параметры сессии.
показывают READ COMMITTED.
S-блокировка висит.
в чем подвох?


Аксес использует для получения данных от скуля серверный курсор и набор недофичен до конца?
8 янв 14, 15:30    [15386398]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
o-o
Guest
pkarklin,
про курсор сказал Glory в той теме про Аксесс, ну, ему виднее.
мне все равно ничего непонятно.
что-то куда-то недофетчено, но это не "число строк, влезающих в аксессовое окно"

для воспроизведения ситуации надо написать любой селект к немаленькой таблице.
т.е. у меня не вышло на таблице в 500 строк (блокировка не держалась),
на таблице в 7,5 тысяч уже эффект есть.

для этого запроса выцепляется все тот же чистый селект:

select *, st.text
from sys.dm_exec_requests
cross apply sys.dm_exec_sql_text(sql_handle) st
where session_id = 59
---------------------
<...> text
---------
<...> select * from dbo.DimDate, dbo.FactInternetSales


профайлер показывает только TIL, явно установленный в сессии,
т.е. не показатель (беру для примера долгоиграющий запрос с в самом запросе (nolock),
потом профайлер запускаю, про эту сессию он все равно говорит READ COMMITTED,
только если явно выполнить set transaction isolation level read uncommitted, то он отражает)

transaction_isolation_level в sys.dm_exec_requests тоже показывает неизвестно что, видимо, как и профайлер, на уровне сессии, а не запроса.

как понять, что там внутри курсора делается, не знаю. подскажите
8 янв 14, 15:53    [15386485]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
o-o
Guest
фу, блин, простите, постом выше в тексте запроса результат не того запроса, что в Аксессе,
а от "долгоиграющего", не из того окна скопировано.

в Аксессе простой селект без всяких перекрестных соединений.
выполняется из студии моментально.
в Аксессе тоже моментально, но Аксесс блокировку удерживает,
пока его не закроешь совсем
8 янв 14, 15:58    [15386495]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
o-o,

автор
мне все равно ничего непонятно.
что-то куда-то недофетчено


Недофичено на клиента.
8 янв 14, 16:29    [15386572]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
o-o
Guest
яснее не стало.
почему блокировка удерживается?
если есть, где подробно почитать, дайте плиз ссылку
8 янв 14, 16:49    [15386638]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
o-o,

Попробуйте отловить профайлером вызов из Аксеса sp_cursoropen.
8 янв 14, 17:14    [15386714]     Ответить | Цитировать Сообщить модератору
 Re: Идентификатор записи  [new]
o-o
Guest
pkarklin,

ничего не отлавливается.
с фильтром на аксесс вообще пусто,
только строчка на сам SELECT в SQL:BatchStarting
а без него свой же трэйс и отлавливает.
трэйс -- который на процедуры с добавлением всех событий из курсоров.
(делаю на личном сервере где только я и есть)
8 янв 14, 18:25    [15386923]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить