Страница 1 из 1

И опять MS SQL вопрос

Добавлено: 25 июн 2003, 18:05
aldep
MS SQL
Есть две таблицы. В одной table1 500 столбцов и пол миллиона записей.
Есть primary key он же clustered index.
Есть другая таблица table2. В ней два столбца. Данные в них копия primary key и еще одного столбца из первой таблицы. Так же стоит clustered index на primary key.
Проблема в том, что запросы типа
select count(*) from table1
select max(cloumn1) from table1
select avg(column1) from table1
и тд.
исполняются в 30-50 раз медленнее, чем те же запросы, но на table2. Хотя число записей одно и тоже.
Вопрос - почему так? И еще более важный, как это исправить?
Спасибо

Re: И опять MS SQL вопрос

Добавлено: 25 июн 2003, 19:46
папа Карло
MSSQL
aldep писал(а):select count(*) from table1
exec sp_spaceused 'table1'

посомтри исходник найдешь как просто один селект написать.
aldep писал(а):select max(cloumn1) from table1
column1 в индексе?
aldep писал(а):select avg(column1) from table1
а не пора начать аггрегировать данные в кубик какой-нить? :) обычно если хочешь перформанс, то организовывать надо таким образом чтоб не трогать много данных.

Добавлено: 25 июн 2003, 20:24
aldep
column1 в индексе?
Нет не в индексе, но мне что надо все 500 колонок в индекс запихнуть?
Мне же не поиск по ним делать надо, а просто сумму всех посчитать.
а не пора начать аггрегировать данные в кубик какой-нить? обычно если хочешь перформанс, то организовывать надо таким образом чтоб не трогать много данных.
Проблема в том, что я не database architect, а программер. Разным кубам не наученный :)
Да и для того чтобы куб строить надо внутреннее устройство данных знать, а оно каждый раз свое.

Добавлено: 25 июн 2003, 21:59
папа Карло
единственное что я могу тебе посоветовать.... это подкараулить того, что это надизайнил и темную ему устроить. то, что ты простой программер, то просто адресуй эти вопросы к вашему архитектору, дба, техническому лидеру. пусть репу чешут что делать. я могу сказать только одно: если приведенные тобой запросы обычное дело, то вам надо подумать о кубах. в таблицы с 500 колонками я "не верю". это надо менять скорее всего (до сих пор не могу поверить в такю таблицу...)ю коротким предложением: дизайн не отвечает требованиям раз ты задаешь вопросы "почему медленно".

хотите, могу посмотреть ваше дело на досуге. за денюжку какую нить :)

Добавлено: 26 июн 2003, 19:40
aldep
Темную с удовольствием да далеко они - Census Canada такое устроила. :)
Архитектор и технический лидер - я. А ДБА нет. Так что придется самому разбираться.
Вроде получилось сильно улучшить - убрал кластерный индекс, и поставил обычные на все столбцы.
хотите, могу посмотреть ваше дело на досуге. за денюжку какую нить
Посмотреть на досуге - не пойдет.
А если ты database analyst'ом потянешь и заинтересован, то кинь резюме :)

Добавлено: 26 июн 2003, 19:40
aldep
Да и еще. Спасибо за помощь :P

Добавлено: 26 июн 2003, 21:27
папа Карло
хе-хе.... иди приват читай :)