тип данных uniqueidentifier

Smoke999
Дата: 22.05.2015 13:38:42
Давно хотел разобраться с этим вопросом, все никак руки не доходили.
Есть 3 таблицы:
1) Скомпонованные позиции. РК типа bigint
2) Товары - РК типа bigint
3) Состав - с внешними ключами на первые 2 таблицы.

Количество записей около 200тыс.
Провел 6 тестов с разными типами РК:
1-3) объединение по всем таблицам с РК типа:
1 - bigint-стоимость 29
2 - uniqueidentifier - Newid()-стоимость 55
3 - varchar(150)-NewId()-стоимость 16
4-6) поиск по конкретной позиции с объединением по всем таблицам с РК типа:
4 - bigint -стоимость 39
5 - uniqueidentifier - Newid()-стоимость 31
6 - varchar(150)-NewId()-стоимость 31

Получается что лучше использовать varchar(150) вместо uniqueidentifier? Или я что-то упустил?
Вариант с bigint не подходит, так как может быть импорт данных из сторонней бд.
Конечно можно использовать uniqueidentifier только для импорта, а дальше проставить внутренние поля bigint и работать с ними, но это более громоздкий вариант.
Glory
Дата: 22.05.2015 13:41:22
Smoke999
1 - bigint-стоимость 29

стоимость чего 29 ?
Smoke999
Дата: 22.05.2015 13:43:27
стоимость запроса. Я выполнял 3 подряд - общий 100
Glory
Дата: 22.05.2015 13:44:38
Smoke999
Я выполнял 3 подряд - общий 100

А сами планы то вы поняли ?
Smoke999
Дата: 22.05.2015 13:50:54
Структура планов выполнения одинакова, отличаются только стоимость на определенных этапах
Glory
Дата: 22.05.2015 13:52:56
Smoke999
Структура планов выполнения одинакова, отличаются только стоимость на определенных этапах

Извинте, но после ваших "оно автоматически обновляет", я считаю, что вы не имеете достаточного уровня знаний для вынесения таких суждений
Smoke999
Дата: 22.05.2015 14:03:12
А вы не грубите, пользователь нажимает Enter и данные автоматически обнавляются. То что в коде присутсвтует Edit/insert - post то это было понятно и так. И вы ту тему закрыли, так что не будем возвращаться к ней. Если не хотите помочь по данному вопросу пройдите мимо. А то у вас все ответы такие что "...фу незнает даже такого" а сами ничего не предлагаете. Я понимаю вы тут уже очень много времени, благо количество сообщений ваших говорит о многом, и опыт больше, так если знаете ответ подскажите, нет , или не хотите - лучше вообще не пишите. У вас половина сообщений такие, без обид.
Гавриленко Сергей Алексеевич
Дата: 22.05.2015 14:09:03
Smoke999
А вы не грубите, пользователь нажимает Enter и данные автоматически обнавляются. То что в коде присутсвтует Edit/insert - post то это было понятно и так. И вы ту тему закрыли, так что не будем возвращаться к ней. Если не хотите помочь по данному вопросу пройдите мимо. А то у вас все ответы такие что "...фу незнает даже такого" а сами ничего не предлагаете. Я понимаю вы тут уже очень много времени, благо количество сообщений ваших говорит о многом, и опыт больше, так если знаете ответ подскажите, нет , или не хотите - лучше вообще не пишите. У вас половина сообщений такие, без обид.

Модератор: Я и эту тему закрою, если вы будете продолжать обсуждать ее участников
WarAnt
Дата: 22.05.2015 14:09:15
Smoke999,

автор
Вариант с bigint не подходит, так как может быть импорт данных из сторонней бд.


А что мешает создать внутренний ключ bigint и на него повесить PK?
тогда пофигу, что там прислала внешняя помойка.
AlanDenton
Дата: 22.05.2015 14:10:00
Smoke999, лично мне структура Вашего вопроса малость не очевидна. Какой тип данных лучше с точки зрения производительности?

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

Если говорить о том, что типы данных при соединении оказывают влияние на план выполнения - это верно. Что еще? Может это будет полезным для ознакомления - http://habrahabr.ru/post/211885/