Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 блокировка чтения - в каком серванте можно ее исключить ?  [new]
SangYong
Member [скрыт]

Откуда:
Сообщений: 664
Приветствую. С годом Белого Филина всех нас.

Вопросы:
1/ Мне нужно понять как правильно сделать базу хранения и обновления прайсов (один прайс - одна таблица,кол_во полей разное но основные одни и те же, сборка юнионом, прайсов около сотни). Сейчас все крутиться на MSSQL но я имею серьезные проблемы с блокировками чтения - я не всегда могу обновить прайс в нагруженной среде. Есть ли в настройках кагонить сервера возможность снять блокировку чтения - прайсы обновляю вручную, автоматом и :) снова вручную когда на той стороне снова поменяли формат, но постоянно - от этого зависит конкурентная способность организации.
2/ к прайсам народ подбирается из MSAccess (кроме вебинтерфейса). Требуют возможность оставлять заметки для себя - временные. Ну и прочие хотелки. У серванта должна быть возможность вещать на вьюхи триггеры "вместо обновления" - хороший способ сделать обновляемым любой не обновляемый вью.
3/ почему-то интересно: MSSQL "хранит" базу в двух файлах .mdf(база) и .ldf(лог) - удобно: работаешь на домашнем, отэтачил, кинул на флеху, приэтачил в другом серванте....важно !!!.
3 янв 15, 11:47    [17082192]     Ответить | Цитировать Сообщить модератору
 Re: блокировка чтения - в каком серванте можно ее исключить ?  [new]
Yo.!
Guest
SangYong,

открой для себя версионный механизм. http://rsdn.ru/article/db/yukonvers.xml
3 янв 15, 12:21    [17082226]     Ответить | Цитировать Сообщить модератору
 Re: блокировка чтения - в каком серванте можно ее исключить ?  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145754
SangYong
Есть ли в настройках кагонить сервера возможность снять блокировку чтения


1. Можно сделать SET TRANSACTION ISOLATION LEVEL Read Uncommited, но лучше в select указать, что таблица NOLOCK

А вообще-о у Вас каша какая-то, а не база. Почему каждый прайс в отдельной таблице?
Почему блокировка при изменении прайса длится так долго, что мешает чтению?
3 янв 15, 12:36    [17082239]     Ответить | Цитировать Сообщить модератору
 Re: блокировка чтения - в каком серванте можно ее исключить ?  [new]
SangYong
Member [скрыт]

Откуда:
Сообщений: 664
Cat2, да каша - причина - форматы прайсов у всех разные с разными типами
и с разными кол_вами полей - нужные только 5 - их привожу к единому типу
остальные нужны некоторым эпизодически - например некоторые прайсы дают
вес и локейшн. Процедуры обновления тоже разные для каждого прайса -
для некотрых стоят шпиончики - сравнивают наличие прайсов и поплняют
статистику по позициям. И вообще всё начиналось с двух прайсов - пошла тяга и только
сейчас начал задумываться. Локи эпизодические - раз в неделю. Смотрю список
блокировок и кил делаю.
3 янв 15, 14:41    [17082487]     Ответить | Цитировать Сообщить модератору
 Re: блокировка чтения - в каком серванте можно ее исключить ?  [new]
SangYong
Member [скрыт]

Откуда:
Сообщений: 664
Yo.!, ну да - есть что поизучать по 10-разу - всегда найдется недоперепонятое.
Тема была вообще про известные кому-то еще какие-то серванты а не только про MSSQL.
Мне нужно чтобы я тупо всегда мог сделать "делит всё" и "инсерт всё" не обращая
внимания на чтецов.
3 янв 15, 14:47    [17082494]     Ответить | Цитировать Сообщить модератору
 Re: блокировка чтения - в каком серванте можно ее исключить ?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54850

SangYong
Тема была вообще про известные кому-то еще какие-то серванты а не только
про MSSQL.
Мне нужно чтобы я тупо всегда мог сделать "делит всё" и "инсерт всё" не обращая внимания
на чтецов.

Видишь ли, MS SQL это единственный сервер у которого есть проблемы с блокировкой
читателей.

Posted via ActualForum NNTP Server 1.5

3 янв 15, 15:08    [17082528]     Ответить | Цитировать Сообщить модератору
 Re: блокировка чтения - в каком серванте можно ее исключить ?  [new]
SangYong
Member [скрыт]

Откуда:
Сообщений: 664
Dimitry Sibiryakov, в кабрид заглянул - таж фишка
не смогу ссылку щас дать - просто в доки их залез.

если полезу в PG то меня будет еще кое-что интересовать
ибо когда я туда лазил в последний раз там не было триггеров
на вью инстид оф и еще чего-то - не помню - кажется селекта
из процедуры...Да и перемещать базу как-то было не удобно
3 янв 15, 15:31    [17082549]     Ответить | Цитировать Сообщить модератору
 Re: блокировка чтения - в каком серванте можно ее исключить ?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54850

SangYong
в кабрид заглянул

В куда?.. Ты бы ещё в FvMAS заглянул...

Posted via ActualForum NNTP Server 1.5

3 янв 15, 17:49    [17082833]     Ответить | Цитировать Сообщить модератору
 Re: блокировка чтения - в каком серванте можно ее исключить ?  [new]
SangYong
Member [скрыт]

Откуда:
Сообщений: 664
Cat2, NOLOCK выставил - скорость выполнения замедлилась
примерно на 400 мс - не критично. Погонял фильтрацию через
MSA - вроде пока таймаутов не наблюдаю.
Гляну на процесс когда народ вернется в себя

благодарен за обсуждение.
4 янв 15, 17:20    [17084909]     Ответить | Цитировать Сообщить модератору
 Re: блокировка чтения - в каком серванте можно ее исключить ?  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709
Dimitry Sibiryakov
SangYong
Тема была вообще про известные кому-то еще какие-то серванты а не только
про MSSQL.
Мне нужно чтобы я тупо всегда мог сделать "делит всё" и "инсерт всё" не обращая внимания
на чтецов.

Видишь ли, MS SQL это единственный сервер у которого есть проблемы с блокировкой
читателей.


Не единственный.
9 янв 15, 05:29    [17095913]     Ответить | Цитировать Сообщить модератору
 Re: блокировка чтения - в каком серванте можно ее исключить ?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54850

MasterZiv
Не единственный.

А, ну да, есть ещё богом забытые Sybase, DB2, MyISAM и FvMAS. Но до этой экзотики аффтар
точно не доберётся.

Posted via ActualForum NNTP Server 1.5

9 янв 15, 12:44    [17096351]     Ответить | Цитировать Сообщить модератору
 Re: блокировка чтения - в каком серванте можно ее исключить ?  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709
Dimitry Sibiryakov,

mssql не единственный блокировочник, и блокировочники - не изгои индустрии СУБД, как ты это пытаешься представить, а нормальное явление. у каждой схемы разведения транзакций есть как плюсы, так и минусы.

Если автор темы не умеет пользоваться транзакциями, это его проблемы, а не используемой СУБД.

а он даже вопрос толком не может сформулировать.
10 янв 15, 09:20    [17099532]     Ответить | Цитировать Сообщить модератору
 Re: блокировка чтения - в каком серванте можно ее исключить ?  [new]
Ggg_old
Member

Откуда: Одесса
Сообщений: 1342
SangYong, подозрительно, что задача чтения райсов может не то что на MSSQL, а вообще на любом нынесущесвующем да и любом сервере выпущенным в последние 10 лет представлять проблему. Предположу, что клиенты лазят напрямую базу, шлют в нее прямые селекты и курсор/ресурсы не отпускают. Если он так, то конечно надо чуток изменить подход к чтению данных с клиента и тогда даже уровнями изоляции не придется заморачиваться (но безусловно тут тоже сразу подкрутить как надо).
11 янв 15, 17:33    [17102819]     Ответить | Цитировать Сообщить модератору
 Re: блокировка чтения - в каком серванте можно ее исключить ?  [new]
SangYong
Member [скрыт]

Откуда:
Сообщений: 664
Ggg_old, да в прайсы лезут напрямую - MSAccess (ODBC) и из локалки и снаружи.
Ретранслируемый запрос отправляется серверу - прямой селект по условию. А как
Вы бы посчитали более правильным ?
15 янв 15, 14:00    [17122294]     Ответить | Цитировать Сообщить модератору
 Re: блокировка чтения - в каком серванте можно ее исключить ?  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709
SangYong,

даже в этом случае при чтении данных блокировка shared снимается сразу же после чтения одной страницы данных.
Также специально для того, чтобы select не мешал update-ту есть "ворота" для select -ов на таблице в виде update intent lock - несколько скелетов через нее проходят, потом"воротики закрываются" и select ы блокируются и не мешают update -у.

так что тебе надо что- то в консерватории поправить. в смысле, ты что то делаешь совершенно не так.
17 янв 15, 08:54    [17131544]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить