Выбор случайного значения, не совпадающего с ключом

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

Duncon, спокойнее. ;)
&quot писал(а):Это нужно когда импортируешь чужые данные или сливаешь несколько наборов в один. При проведении нагрузочных тестов для генерации данных; настройке производительности.
не вижу почему не использовать последовательно возрастающее значение.
Изображение
Laba
Сообщения: 35
Зарегистрирован: 24 мар 2009, 17:47

Игорь Акопян писал(а):Duncon, спокойнее. ;)

не вижу почему не использовать последовательно возрастающее значение.
Вот пример ситуации.

Головной офис ежемесячно собирает с филиалов данные и сливает в единый массив. После их обработки, головной офис формирует изменения, которые должны быть добавлены в общий массив.

В головном офисе и филиале используется одно и тоже ПО. Другими словами структура база одинакова, изменить pk нельзя. Более того, проектировщик хорошо знающий теорию баз данных, не будет делать pk autoincrement'ным :D

В этой ситуации возрастающие значения для Pk нужно использовать в филиалах для добавления новых записей. А в головном офисе при добавлении изменений max()+1 не подходит.

Конечно, Вы можете искать свободные значения для pk min и max - классическое решение. Но когда таблица большая (>50 млн) и нужно добавить много (>1000) записей, то дешевле разыграть значения и сделать вставку.

На досуге можете потренироваться. :)

Кстати, ещё пример из повседневной практики :D Лучше первого.

Есть такой метод сбора статистики по таблице ESTIMATE

ANALYZE TABLE x ESTIMATE STATISTICS

_Разыгрывается_ набор уникальных значений ROWID и на основе данных записей с этим ROWID (всего лишь!) формируется отчет со статданными.

Этот метод применяем для формирования ряда экспресс-отчетов. Очень хорошо себя зарекомендовал.

Попробуйте сформировать набор _уникальных_значений. Да такой, чтоб не помещался в конструкцию IN (больше 1024). Чтоб в таблице хранился. Очень полезное упражнение.
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Автор ты под кайфом?
Не вижу в этом флудопосте ответа на вопрос.
[syntax=Delphi] [/syntax]
Laba
Сообщения: 35
Зарегистрирован: 24 мар 2009, 17:47

Duncon писал(а):Автор ты под кайфом?
Не вижу в этом флудопосте ответа на вопрос.
На какой вопрос Вы пытаетесь найти ответ в моём посте? Пожалуйста, отпишитесь.

p.s. Внимательнее прочитайте посты.
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

репликация... сам не занимался, но видел наработку где для этих целей существовало поле GUID
Изображение
Ответить