|
|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Andrey 2:5083/13.5 01 Apr 2001 20:43:00 To : Drema* Subject : Дремина хитрость 2 -------------------------------------------------------------------------------- Hi! Drema* [....] > Во первых как я уже отмечал ты заставив всех пользователей >апдейтить одну и ту же строку в одной и той же таблице, просто выставил >их всех в очередь за следующим значением поля идентификатора. D> Хорошо. Для обеспечения работы моей логической структуры мне D> требуется уникальный ключ для всех таблиц... Как мне его D> обеспечить кроме как вот таким способом? Во первых, зачем чесать левое ухо правой рукой из под левой ноги ??? :))) Hу раз уж тебе это так захотелось то по крайней мере разведи юзеров по строкам своего генератора уникальной последовательности. Элементарно добавь в таблицу NSI_ID еще одно поле ROW_ID, вот в по этому то полю и ищи значение ROW_ID равное @SPID,если такого значения в таблице нет то добавляй в него новую строку. insert into NSI_ID (ROW_ID,ID) values(@SPID,0). Результирующий иникальный код будет составным из поля @ROW_ID * 1000000 + @ID короче такая маленькая хитрость позволит каждому приконектившемуся пользователю работать со своей строкой в твоем генераторе уникальной последовательности паралельно и не блокируя друг друга. То есть твой генератор уникальной последовательности будет состоять не из одной строки, а из строк равных максимальному количеству когда либо работавших клиентов с твоей базой то есть в твоем случае это будет 50 строк. Понял Дрема как просто решаются Копеечные проблемы. :))) Хотя на MS-SQL 6.5 тебе еще прийдется забить свою строку всяким мусором,что бы одна строка занимала одну страницу,так как иначе у MS-SQL 6.5 при строчной блокировке все твои 50 строк как раз попадут в одну страницу и все равно будут одновременно блокироваться. > Hу и как следствие того,что все поля >должны быть при вставке > Null то естественно повысил вероятность появления >сиротских записей,в детальных таблицах. D> Ты имеешь ввиду отношение 1 ко многим? У меня внешняя ссылка D> хранится в другой таблице. Вот допустим есть рядовая D> таблица: Дальше без пол литра все равно не разберешся,обясняй не на исходных текстах,а нормальным литературным языком - абстрактно. Сначала суть,а потом все детали - без илюстрации исходных текстов. Андрей --- * Origin: (2:5083/13.5) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/2764ac7cac52.html, оценка из 5, голосов 10
|