Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Индексы ????????? / 13 сообщений из 13, страница 1 из 1
27.09.2002, 00:41:19
    #32053484
Артем
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы ?????????
Уважаемые господа подскажите пожалуйста как все таки со всем этим управляться. :-(

Задача: Большие обьемы однотипных данных вносимые и редактируемые из разных филиалов. Заказы. У каждого заказа может быть несколько подпунктов (до 255).

Все данные должны отражаться на головном сервере для BACKUPa и отчетности.

Решение:

Merge репликация.
и таблицы вот такие для подпунктов:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE TABLE dbo.tblCustomersOrdersAddIns
	(
	OrderID uniqueidentifier NOT NULL,
	IDX int NOT NULL,
	iType tinyint NOT NULL,
	Strings varchar( 50 ) NOT NULL
	)  ON [PRIMARY]
GO

ALTER TABLE dbo.tblCustomersOrdersAddIns ADD CONSTRAINT
	PK_tblCustomersOrdersAddIns PRIMARY KEY CLUSTERED 
	(
	OrderID,
	IDX
	) ON [INDEXES]

GO


Как Вы думаете ЭТО правильно, или нет?

СПАСИБО.
...
Рейтинг: 0 / 0
27.09.2002, 13:05:50
    #32053642
Артем
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы ?????????
Игнорируют.............
Жаль.
...
Рейтинг: 0 / 0
27.09.2002, 13:53:10
    #32053667
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы ?????????
CLUSTERED индекс по столбцу uniqueidentifier категорически НЕТ

PRIMARY KEY по столбцу uniqueidentifier + еще что-то - не знаю не знаю. Думаю это "еще что-то" лишнее
...
Рейтинг: 0 / 0
27.09.2002, 14:44:32
    #32053696
Артем
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы ?????????
2Glory
А почему, где прочитать?

Насколько правильно понимаю - весит много?
А если мне еще и быстрый поиск по веткам нужен?

Был бы премного благодарен если бы направил на путь истиный кто...

Огромное спасибо.
...
Рейтинг: 0 / 0
27.09.2002, 14:58:00
    #32053704
fima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы ?????????
2Glory "CLUSTERED индекс по столбцу uniqueidentifier категорически НЕТ" а что плохого в таком индексе?
...
Рейтинг: 0 / 0
27.09.2002, 15:20:31
    #32053720
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы ?????????
1. Про CLUSTERED
Любое изменение полей входящих в кластерный индекс потребует перемещения всей записи. А это может вызвать повлечь очень трудоемкие операции, если запись перемещается на страницы, которые уже заполнены. Т.е. изменение одной записи может повлечь целую череду физических пермещений.
Т.к. GUID-ы обычно получают с помощью функции newid(), которая в общем случае генерирует их произвольно, то любое добавление записи будет происходить в произвольное место таблицы.
Поэтому для таблицы с операциями добавления кластерный индекс по полю uniqueidentifier слишком дорого обходится

BOL - Creating and Maintaining Databases - Indexes - Designing an Index - Using Clustered Indexes

2. Про PRIMARY
Т.к. опять же uniqueidentifier по теории всемирноглобальный идентификатор, то зачем к тому что уже уникально по своей сути добавлять еще что-то. Более уникальным это что-то его не сделает, а длину ключа увеличит.
...
Рейтинг: 0 / 0
27.09.2002, 15:47:54
    #32053735
fima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы ?????????
С этим понятно, но первичный ключ по умолчанию кластерный, т.к. объединения по смыслу в основном идут по нему, то имеет смысл увеличить скорость обработки. Т.е. получается что не стоит использовать поля GUID для первичного ключа?
...
Рейтинг: 0 / 0
27.09.2002, 15:54:40
    #32053742
Артем
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы ?????????
2 Glory
При всем уважении
Вы не правильно меня поняли.

Это таблица связаная с основной.
Сам заказ в одной таблице,
а подпункты к нему в другой.

и связь по этому самому ORDER ID. :-)

Поэтому и к unique доп запись номер позиции в заказе.
...
Рейтинг: 0 / 0
27.09.2002, 16:32:47
    #32053762
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы ?????????
простой индекс по OrderID нужно, но ни как не кластерный...
...
Рейтинг: 0 / 0
27.09.2002, 16:50:10
    #32053771
Артем
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы ?????????
Обьясните пожалуйста?

Вот кластерный индекс
как он устроен в файле базы даных?
наверное так же как и книжный индекс
сверху все отсортировано по первой букве, потом по второй, потом ....

а как это дело понимает SQL?
а если кластерный индекс составной.
а если он и вообще не кластерный.
статей то прочитал много, но видно мало :-)

Ответьте пожалуйста, совсем запутался.
Как построить правильный индекс?
Для реплицируемых таблиц? Для маленьких, больших?

ПОМОГИТЕ!!!!!!!!!!!!!!!
...
Рейтинг: 0 / 0
27.09.2002, 16:54:55
    #32053776
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы ?????????
простой индекс это отдельная структура со ссылками на на исходные данные...
а кластерный индекс - это когда данные располагаются именно в его порядке...
а теперь представте что данные часто меняются, вставляются и удаляются...
какой из индексов дешевле поддерживать?
...
Рейтинг: 0 / 0
27.09.2002, 17:39:43
    #32053789
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы ?????????
2fima
Для операций чтения - да, именно так.
Но Артем в условиях задачи указал " Большие обьемы однотипных данных вносимые и редактируемые из разных филиалов". Поэтому надо думать и над скоростью INSERT/UPADTE.

2Артем

как он устроен в файле базы даных?
BOL - SQL Server Architecture - Database Architecture - Physical Database Architecture - Table and Index Architecture

Как построить правильный индекс?
Для каждого запроса по отдельности можно предложить свой оптимальный индекс. Для совокупности запросов тоже.
Для настройки индексов существует Index Tuning Wizard.
Из наиболее очевидных вещей
- может понадобится индекс по PRIMARY/FOREIGN KEY, если используются JOIN-ы
- может понадобится индекс по полям заданным в WHERE
- может понадобится индекс по полям заданным в ORDER
...
Рейтинг: 0 / 0
27.09.2002, 21:28:41
    #32053847
Артем
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы ?????????
Большое спасибо всем.
Буду дальше разбираться. :-)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Индексы ????????? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]