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

Откуда:
Сообщений: 74
Давно хотел разобраться с этим вопросом, все никак руки не доходили.
Есть 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 и работать с ними, но это более громоздкий вариант.
22 май 15, 13:38    [17676559]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Glory
Member

Откуда:
Сообщений: 104760
Smoke999
1 - bigint-стоимость 29

стоимость чего 29 ?
22 май 15, 13:41    [17676583]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Smoke999
Member

Откуда:
Сообщений: 74
стоимость запроса. Я выполнял 3 подряд - общий 100
22 май 15, 13:43    [17676600]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Glory
Member

Откуда:
Сообщений: 104760
Smoke999
Я выполнял 3 подряд - общий 100

А сами планы то вы поняли ?
22 май 15, 13:44    [17676609]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Smoke999
Member

Откуда:
Сообщений: 74
Структура планов выполнения одинакова, отличаются только стоимость на определенных этапах
22 май 15, 13:50    [17676657]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Glory
Member

Откуда:
Сообщений: 104760
Smoke999
Структура планов выполнения одинакова, отличаются только стоимость на определенных этапах

Извинте, но после ваших "оно автоматически обновляет", я считаю, что вы не имеете достаточного уровня знаний для вынесения таких суждений
22 май 15, 13:52    [17676672]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Smoke999
Member

Откуда:
Сообщений: 74
А вы не грубите, пользователь нажимает Enter и данные автоматически обнавляются. То что в коде присутсвтует Edit/insert - post то это было понятно и так. И вы ту тему закрыли, так что не будем возвращаться к ней. Если не хотите помочь по данному вопросу пройдите мимо. А то у вас все ответы такие что "...фу незнает даже такого" а сами ничего не предлагаете. Я понимаю вы тут уже очень много времени, благо количество сообщений ваших говорит о многом, и опыт больше, так если знаете ответ подскажите, нет , или не хотите - лучше вообще не пишите. У вас половина сообщений такие, без обид.
22 май 15, 14:03    [17676733]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Гавриленко Сергей Алексеевич
Member

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

Модератор: Я и эту тему закрою, если вы будете продолжать обсуждать ее участников
22 май 15, 14:09    [17676785]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
WarAnt
Member

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

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


А что мешает создать внутренний ключ bigint и на него повесить PK?
тогда пофигу, что там прислала внешняя помойка.
22 май 15, 14:09    [17676789]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Smoke999, лично мне структура Вашего вопроса малость не очевидна. Какой тип данных лучше с точки зрения производительности?

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

Если говорить о том, что типы данных при соединении оказывают влияние на план выполнения - это верно. Что еще? Может это будет полезным для ознакомления - http://habrahabr.ru/post/211885/
22 май 15, 14:10    [17676791]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Glory
Member

Откуда:
Сообщений: 104760
Smoke999
А вы не грубите,

Правда - это не грубость

Smoke999
пользователь нажимает Enter и данные автоматически обнавляются.

нуда, нуда, волшебным методом edit-post

Smoke999
Если не хотите помочь по данному вопросу пройдите мимо.

Вот когда заведете себе личный форум, то там и будете командовать. А здесь приедтся слушать все ответы

Smoke999
Я понимаю вы тут уже очень много времени, благо количество сообщений ваших говорит о многом, и опыт больше, так если знаете ответ подскажите, нет , или не хотите - лучше вообще не пишите. У вас половина сообщений такие, без обид.

У меня, как и других , не очень много свободного времени. А ваши темы крадут и его.
И число моих ответов пропорциально числу таких вопрощающих как вы. Не создавайте подобных тем и число моих ответов уменьшится
22 май 15, 14:10    [17676792]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8302
Smoke999, приведите примеры.
22 май 15, 14:13    [17676827]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4807
Smoke999
стоимость запроса. Я выполнял 3 подряд - общий 100


Эти цифры стоимости лажа полная особенно на последних версиях SQL 2012 и 2014. Запрос может быть в 5 раз лучше по стоимости и выполняться в 2 раза дольше. Смотрите на конкретные Read Write CPU Duration. К тому же всё относительно -- запрос может показывать не лучшую производительности при одиночном исполнении, но при этом быть устойчив к сильной фоновой нагрузке.
22 май 15, 14:22    [17676893]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Smoke999
Member

Откуда:
Сообщений: 74
WarAnt
Smoke999,

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


А что мешает создать внутренний ключ bigint и на него повесить PK?
тогда пофигу, что там прислала внешняя помойка.


..ведь я так и написал что можно для импорта, экспорта использовать одни ключи, а внутри программы другие.
Тут есть просто двойственность в уникальных данных и при изменении например техкарты, надо проставить 2 ключа, чтобы сохранить связь с внешними бд.

WarAnt
У меня, как и других , не очень много свободного времени. А ваши темы крадут и его.
И число моих ответов пропорциально числу таких вопрощающих как вы. Не создавайте подобных тем и число моих ответов уменьшится


... ваше время оно на то и Ваше, что вы им сами распоряжаетесь. Все закрыли вопрос, а то и эту тему прикроют.

AlanDenton
Smoke999, лично мне структура Вашего вопроса малость не очевидна. Какой тип данных лучше с точки зрения производительности?


.. да Вы правы. Я постараюсь выложить сейчас структуру бд.
22 май 15, 14:29    [17676939]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Smoke999
Member

Откуда:
Сообщений: 74
CREATE TABLE [dbo].[MainPositions](
	[Posit_ID] [bigint] IDENTITY(1,1) NOT NULL,
	[Posit_ID_ex1] [uniqueidentifier] NULL,
	[Posit_ID_ex2] [varchar](150) NULL,
	[PositName] [varchar](250) NULL,
 CONSTRAINT [PK_Posit_ID] PRIMARY KEY CLUSTERED 
([Posit_ID] ASC)) ON [PRIMARY]

CREATE TABLE [dbo].[PosTechList](
	[KeyField] [bigint] IDENTITY(1,1) NOT NULL,
	[CALC_ID] [bigint] NULL,
	[Posit_ID] [bigint] NULL,
	[Posit_ID_ex1] [uniqueidentifier] NULL,
	[Posit_ID_ex2] [varchar](150) NULL)

CREATE TABLE [dbo].[Komp_PrcCardsTechDetal](
	[KeyField] [bigint] IDENTITY(1,1) NOT NULL,
	[CALC_ID] [bigint] NULL,
	[Posit_ID] [bigint] NULL,
	[Posit_ID_ex1] [uniqueidentifier] NULL,
	[Posit_ID_ex2] [varchar](150) NULL,
	[ProductTYPE] [varchar](1) NULL,
	[Product_ID] [bigint] NULL,
	[Product_ID_ex1] [uniqueidentifier] NULL,
	[Product_ID_ex2] [varchar](150) NULL,
	[Kol_1] [float] NULL,
	[Kol_2] [float] NULL) 

CREATE TABLE [dbo].[Products](
	[Product_ID] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
	[Product_ID_ex1] [uniqueidentifier] NULL,
	[Product_ID_ex2] [varchar](150) NULL,
	[ProductName] [varchar](250) NULL,
 CONSTRAINT [PK_Product_ID] PRIMARY KEY CLUSTERED 
([Product_ID] ASC)) ON [PRIMARY]

select *
from MainPositions left outer join PosTechList on PosTechList.Posit_ID=MainPositions.Posit_ID
left outer join PosTechDetal on PosTechDetal.Posit_ID=PosTechList.Posit_ID
                            and PosTechDetal.CALC_ID=PosTechList.CALC_ID
 LEFT OUTER JOIN Products ON Products.Product_ID=PosTechDetal.Product_ID
where MainPositions.Posit_ID=31723

select *
from MainPositions left outer join PosTechList on PosTechList.Posit_ID_ex1=MainPositions.Posit_ID_ex1
left outer join PosTechDetal on PosTechDetal.Posit_ID_ex1=PosTechList.Posit_ID_ex1
                            and PosTechDetal.CALC_ID=PosTechList.CALC_ID
 LEFT OUTER JOIN Products ON Products.Product_ID_ex1=PosTechDetal.Product_ID_ex1
where MainPositions.Posit_ID_ex1='8C9728C1-6073-4412-8E7F-E7840542C506'

select *
from MainPositions left outer join PosTechList on PosTechList.Posit_ID_ex2=MainPositions.Posit_ID_ex2
left outer join PosTechDetal on PosTechDetal.Posit_ID_ex2=PosTechList.Posit_ID_ex2
                                      and PosTechDetal.CALC_ID=PosTechList.CALC_ID
 LEFT OUTER JOIN Products ON Products.Product_ID_ex2=PosTechDetal.Product_ID_ex2
where MainPositions.Posit_ID_ex2='8C9728C1-6073-4412-8E7F-E7840542C506'
22 май 15, 15:12    [17677288]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Glory
Member

Откуда:
Сообщений: 104760
Вы предлагаете на пустых таблицах сравнивать соединения для полей у которых есть индексы с полями, у которых нет индексов ?
22 май 15, 15:25    [17677391]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Smoke999
Member

Откуда:
Сообщений: 74
declare @i int
declare @PosGuid uniqueidentifier
declare @ProductGuid uniqueidentifier
set @i=50000
while @i<>0 
begin
set @PosGuid=NEWID();
set @ProductGuid=NEWID();
insert into MainPositions (Posit_ID_ex1,Posit_ID_ex2) 
values (@PosGuid,@PosGuid)
insert into PosTechList (Posit_ID_ex1,Posit_ID_ex2) 
values (@PosGuid,@PosGuid)
insert into Products (Product_ID_ex1,Product_ID_ex2) 
values (@ProductGuid,@ProductGuid)
insert into PosTechDetal (calc_ID,Posit_ID_ex1,Posit_ID_ex2,Product_ID_ex1,Product_ID_ex2) 
values (1,@PosGuid,@PosGuid,@ProductGuid,@ProductGuid)
set @i=@i-1

print @i
end;

UPDATE PosTechList 
SET Posit_ID=
(SELECT Posit_ID FROM MainPositions WHERE MainPositions.Posit_ID_ex1=PosTechList.Posit_ID_ex1)

UPDATE PosTechDetal 
SET Posit_ID=
(SELECT Posit_ID FROM MainPositions WHERE MainPositions.Posit_ID_ex1=PosTechDetal.Posit_ID_ex1)

UPDATE PosTechDetal 
SET Product_ID=
(SELECT Product_ID FROM Products WHERE Products.Product_ID_ex1=PosTechDetal.Product_ID_ex1)


таблицы урезаны, остались только главные поля
22 май 15, 15:33    [17677467]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1688
Smoke999,

вы опирались на стоимость выполнения запросов использую конструкции?
SELECT * ... 

к тому же в вашей структере индексым полем считается только Posit_ID, Product_ID но на других таблицах я индексирования таких полей не вижу, смысла пытаться играться с типом поля пока не существует нормальной структуры таблиц нет
22 май 15, 15:34    [17677492]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Smoke999
Member

Откуда:
Сообщений: 74
CREATE NONCLUSTERED INDEX [Posit_ID] ON [dbo].[PosTechList] 
(
	[Posit_ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [Posit_ID_ex1] ON [dbo].[PosTechList] 
(
	[Posit_ID_ex1] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [Posit_ID_ex2] ON [dbo].[PosTechList] 
(
	[Posit_ID_ex2] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO

CREATE NONCLUSTERED INDEX [Posit_ID] ON [dbo].[MainPositions] 
(
	[Posit_ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [Posit_ID_ex1] ON [dbo].[MainPositions] 
(
	[Posit_ID_ex1] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [Posit_ID_ex2] ON [dbo].[MainPositions] 
(
	[Posit_ID_ex2] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO

CREATE NONCLUSTERED INDEX [Posit_ID] ON [dbo].[PosTechDetal] 
(
	[Posit_ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [Posit_ID_ex1] ON [dbo].[PosTechDetal] 
(
	[Posit_ID_ex1] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [Posit_ID_ex2] ON [dbo].[PosTechDetal] 
(
	[Posit_ID_ex2] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [Product_ID] ON [dbo].[PosTechDetal] 
(
	[Product_ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [Product_ID_ex1] ON [dbo].[PosTechDetal] 
(
	[Product_ID_ex1] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [Product_ID_ex2] ON [dbo].[PosTechDetal] 
(
	[Product_ID_ex2] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO

CREATE NONCLUSTERED INDEX [Product_ID] ON [dbo].[Products] 
(
	[Product_ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [Product_ID_ex1] ON [dbo].[Products] 
(
	[Product_ID_ex1] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [Product_ID_ex2] ON [dbo].[Products] 
(
	[Product_ID_ex2] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
22 май 15, 15:38    [17677521]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Очень сильно напрягает использование Вами большого количества BIGINT в которых зачастую нету насущной необходимости. INT/SMALLINT как-то по кошернее будет выглядеть и, как минимум сократит, кол-во чтений из Buffer Pool-а и размеры Ваших таблиц.

Далее. Типы данных тут не помогут кардинально что-то поменять. На таблицах у Вас нет покрывающих индексов.
22 май 15, 15:41    [17677555]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Smoke999
Member

Откуда:
Сообщений: 74
Нет, забыл индексы скинуть.
Я не опирался на *, я ведь написал что таблицы урезаны, и толку от того что перечислять еще 15 полей которых нет. Иначе пришлось бы их еще чем-то заполнять. В запросе есть еще обьединение со справочниками, но они не влияют на результат поэтому я их удалил.
22 май 15, 15:42    [17677563]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Glory
Member

Откуда:
Сообщений: 104760
Smoke999
Нет, забыл индексы скинуть.

Ничего, что у вас одни индексы кластерные, а дргие некластерные ?
Ничего, что у вас все индексы существуют одновременно ?
22 май 15, 15:45    [17677580]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Помните я сбрасывал ссылочку на Хабр. Так вот - лично я придерживаюсь практики минимальной избыточности типов данных. Мне лично это часто выручает.

Как-то раз я был свидетелем когда для поля "М/Ж" коллега использовал тип bigint с аргументацией - "типа я вычитал где-то что это быстрее при соединении"

Мораль: Правильно нужно проектировать таблицы.

Попробуйте вместе bigint/uniqueidentifier/varchar юзать int.

Далее посмотрите на план запроса. Возможно имеет смысл индексы добавить по полям на которых у Вас происходят соединения. Выкинуть из таблиц лишние столбцы либо сделать денормализацию таблиц.
22 май 15, 15:49    [17677602]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Smoke999
Member

Откуда:
Сообщений: 74
Glory,
да, это по запарке, я у себя их для эксперементов запретил и работали только не кластерные.

AlanDenton,
bigint на int впринципе можно поменять. а некоторые данные на smallint. Не думаю что это даст большой прирост, но попробую вечером что получится. Спс что обратили внимание на это.
22 май 15, 15:54    [17677635]     Ответить | Цитировать Сообщить модератору
 Re: тип данных uniqueidentifier  [new]
Glory
Member

Откуда:
Сообщений: 104760
Smoke999
и работали только не кластерные.

все вместе ?
22 май 15, 15:56    [17677664]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить