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

Откуда:
Сообщений: 1058
Есть таблица
в ней 89 995 105 строк
каждый день пишется 600 000 строк
есть 1 индекс

вставка в эту таблицу занимает 30 минут и каждый день время увеличивается.

Что можно сделать?

Спасибо
8 окт 13, 12:10    [14938686]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
кириллk
Есть таблица
в ней 89 995 105 строк
каждый день пишется 600 000 строк
есть 1 индекс

вставка в эту таблицу занимает 30 минут и каждый день время увеличивается.

Что можно сделать?

Спасибо

А структуру таблицы и что за индекс нам предлагается Угадать??
8 окт 13, 12:11    [14938695]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
Glory
Member

Откуда:
Сообщений: 104751
кириллk
Что можно сделать?

- Удалить индекс
- использовать bulk insert
8 окт 13, 12:13    [14938711]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
кириллk
Member

Откуда:
Сообщений: 1058
Сергей Викт.,

Какую структуру?

в таблице 4 поля (пользователь (bigint), время (int), параметр1 (varchar(255)),параметр2 (varchar(255))
8 окт 13, 12:15    [14938722]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Сергей Викт.
кириллk
Что можно сделать?

А структуру таблицы и что за индекс нам предлагается Угадать??

Угу, так же как и скрипт/метод вставки данных, размер одной порции данных и т.д. и т.п.
8 окт 13, 12:15    [14938723]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
кириллk
Member

Откуда:
Сообщений: 1058
Glory,

Индексы удалять нельзя я потом ее группирую, join итд
8 окт 13, 12:16    [14938725]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10232
Блог
1) секционировать по дню
2) данные за текущий день лить в таблицу-кучу через массовую загрузку
3) строить индексы на таблице-куче и подключать к основной секционированной таблице
8 окт 13, 12:17    [14938730]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
Glory
Member

Откуда:
Сообщений: 104751
кириллk
Индексы удалять нельзя

Тогда определитесь, что вам важнее
8 окт 13, 12:17    [14938732]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
Гость333
Сергей Викт.
пропущено...

А структуру таблицы и что за индекс нам предлагается Угадать??

Угу, так же как и скрипт/метод вставки данных, размер одной порции данных и т.д. и т.п.

Ну у Вас, думаю опыта побольше в гадании))) Я пока не силён.

По факту Glory прав.
Но зависит от того, насколько активно используется данная таблица. Если она оперативная и нагруженная, то без индекса будет тяжковато.
Partition ??
8 окт 13, 12:17    [14938735]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
кириллk
Member

Откуда:
Сообщений: 1058
Гость333,


Угу, так же как и скрипт/метод вставки данных, размер одной порции данных (600 000 в день)

insert into [dbo].[большая]

SELECT [x]
,[xx]
,[xxx]
,[xxxx]
FROM [dbo].[временая]
8 окт 13, 12:19    [14938745]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
кириллk,

Вам уже ответили. Секционируйте таблицу и будет вам счастье. Вам даже алгоритм описали словами.
8 окт 13, 12:21    [14938754]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
кириллk
Member

Откуда:
Сообщений: 1058
Сергей Викт.,

1) секционировать по дню
2) данные за текущий день лить в таблицу-кучу через массовую загрузку
3) строить индексы на таблице-куче и подключать к основной секционированной таблице

так?
8 окт 13, 12:22    [14938760]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
кириллk
Member

Откуда:
Сообщений: 1058
кириллk,

https://www.sql.ru/articles/mssql/2005/073102partitionedtablesandindexes.shtml
8 окт 13, 12:23    [14938766]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
кириллk
Сергей Викт.,

1) секционировать по дню
2) данные за текущий день лить в таблицу-кучу через массовую загрузку
3) строить индексы на таблице-куче и подключать к основной секционированной таблице

так?

Да
8 окт 13, 12:25    [14938777]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
Glory
Member

Откуда:
Сообщений: 104751
кириллk
,

1) секционировать по дню
2) данные за текущий день лить в таблицу-кучу через массовую загрузку
3) строить индексы на таблице-куче и подключать к основной секционированной таблице

так?

А у вас что строго за один день добаляются данные ?
8 окт 13, 12:27    [14938796]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
Гость333
Member

Откуда:
Сообщений: 3683
кириллk
так?

Это если у вас SQL Server Enterprise Edition. В более простых редакциях секционирование таблиц не поддерживается.
8 окт 13, 12:29    [14938807]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
http://technet.microsoft.com/ru-ru/library/ms190421(v=sql.105).aspx
8 окт 13, 12:30    [14938820]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
кириллk
Member

Откуда:
Сообщений: 1058
Гость333,

Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) Dec 28 2012 20:23:12 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
8 окт 13, 12:35    [14938857]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
кириллk
Гость333,

Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) Dec 28 2012 20:23:12 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

Ну шикарно! Enterprise есть, 2012 скуль есть, идея есть, статья есть. Действуйте!
8 окт 13, 12:38    [14938878]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
600 тыс строк
Guest
1 индекс (кластерный?), 600 тыс строк, 30 минут

похоже на сплиты

зы

структура таблицы с индексом, это гос. тайна?
8 окт 13, 12:56    [14939028]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34658
кириллk
каждый день пишется 600 000 строк
вставка в эту таблицу занимает 30 минут и каждый день время увеличивается.


Если это вставка 600000 строк, то (/ 600000 (* 30 60)) = 333 -- не так уж и плохо.
И 30 минут думаю можно и подождать.
8 окт 13, 13:40    [14939404]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10232
Блог
MasterZiv
кириллk
каждый день пишется 600 000 строк
вставка в эту таблицу занимает 30 минут и каждый день время увеличивается.


Если это вставка 600000 строк, то (/ 600000 (* 30 60)) = 333 -- не так уж и плохо.
И 30 минут думаю можно и подождать.

учитывая то, что я сайчас загружал данные со скоростью 670 000 в сек...то да..."не плохо"
8 окт 13, 13:43    [14939424]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
kalimba
Member

Откуда:
Сообщений: 297
Knyazev Alexey,

А каким образом секционировать по дню? Создать сразу partition scheme/function на год вперёд? Каком образом можно автоматизировать получение номера партиции по дню для автоматизации sliding window?
8 окт 13, 15:15    [14940151]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34759
Блог
сначала я бы попробовал вставку через bulk insert,
и только если время вставки будет неудовлетворительным - секционирование
8 окт 13, 15:18    [14940171]     Ответить | Цитировать Сообщить модератору
 Re: Большая таблица mssql 2008  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34759
Блог
kalimba,

все есть в служебных представлениях,
sys.partition_range_values
8 окт 13, 15:19    [14940180]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить