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

Откуда:
Сообщений: 31
Добрый день, гуру SQL. Очень нужен совет вот по какому вопросу..

У нас есть таблица, в которую, например, каждое утро поступают данные из БД 1С.

Num col1 col2 col3
1 a11 b11 c11
1 a12 b12 c12
1 a13 b13 c13
2 a21 b21 c31
2 a22 b22 c32
2 a23 b23 c33

Поле Num уникальное, поля col1-col3 изменяемые случайным образом, данные должны обновляться в MS SQL, к примеру, каждое утро. Были мысли удалять все из таблицы и каждое утро все записывать, но прикинули, что сейчас в этой таблице будет около 400к записей(примерно за полгода). Так вот-как можно реализовать такой механизм без извращения с удалением?Как понять, какое поле изменили и его нужно заменить, а какое пропустить?
8 авг 13, 12:44    [14680600]     Ответить | Цитировать Сообщить модератору
 Re: Наличие изменений в таблице  [new]
Glory
Member

Откуда:
Сообщений: 104751
Sky1992
Как понять, какое поле изменили и его нужно заменить, а какое пропустить?

если вы не отслеживете изменения, то никак

ЗЫ
Кроме добавлений и изменений есть еще и удаления

Сообщение было отредактировано: 8 авг 13, 12:47
8 авг 13, 12:46    [14680617]     Ответить | Цитировать Сообщить модератору
 Re: Наличие изменений в таблице  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2414
Sky1992,

напишите на таблицу триггер, который будет отслеживать изменения.
8 авг 13, 13:20    [14680905]     Ответить | Цитировать Сообщить модератору
 Re: Наличие изменений в таблице  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35370
Блог
Sky1992
Num col1 col2 col3
1 a11 b11 c11
1 a12 b12 c12
1 a13 b13 c13
2 a21 b21 c31
2 a22 b22 c32
2 a23 b23 c33

Поле Num уникальное, поля col1-col3 изменяемые случайным образом, данные должны обновляться в MS SQL, к примеру, каждое утро?


уникальное - это разное на каждой строчке...

вообще, 400 тыс - это 1-5 секунды на полный импорт (+- чуть-чуть)
8 авг 13, 13:29    [14680963]     Ответить | Цитировать Сообщить модератору
 Re: Наличие изменений в таблице  [new]
Sky1992
Member

Откуда:
Сообщений: 31
Glory
Sky1992
Как понять, какое поле изменили и его нужно заменить, а какое пропустить?

если вы не отслеживете изменения, то никак

ЗЫ
Кроме добавлений и изменений есть еще и удаления


вернее, какую строку изменили и как ее вычислить, и, в итоге, заменить/изменить
8 авг 13, 13:43    [14681051]     Ответить | Цитировать Сообщить модератору
 Re: Наличие изменений в таблице  [new]
Glory
Member

Откуда:
Сообщений: 104751
Sky1992
Glory
пропущено...

если вы не отслеживете изменения, то никак

ЗЫ
Кроме добавлений и изменений есть еще и удаления


вернее, какую строку изменили и как ее вычислить, и, в итоге, заменить/изменить

Самому серверу эта информация совершенно не нужна.
Если он нужна вам, то придется модифицировать таблицу, чтобы такая информация сохранялась.
8 авг 13, 13:47    [14681083]     Ответить | Цитировать Сообщить модератору
 Re: Наличие изменений в таблице  [new]
Sky1992
Member

Откуда:
Сообщений: 31
Критик
уникальное - это разное на каждой строчке...

вообще, 400 тыс - это 1-5 секунды на полный импорт (+- чуть-чуть)

1)прошу прощения, не правильно выразился-значения этого поля не меняются
2)это в примере 3 столбца, на самом деле их 16. Запрос на очистку+импорт такого кол-ва информации в 400к строк и 16 столбцов отрабатывался 10-12 сек, через годик на него будет уходить около сек 30, что не есть хорошо для меня
8 авг 13, 13:48    [14681091]     Ответить | Цитировать Сообщить модератору
 Re: Наличие изменений в таблице  [new]
Sky1992
Member

Откуда:
Сообщений: 31
Glory, в том-то и проблема, данные импортируются из таблицы 1С, админы которой изменения вносить не хотят в свою БД-"сейчас все работает у нас и мы ничего делать не будем".

StarikNavy предложил триггер сделать-было бы интересно какой-нибудь пример увидеть.
8 авг 13, 13:54    [14681129]     Ответить | Цитировать Сообщить модератору
 Re: Наличие изменений в таблице  [new]
Glory
Member

Откуда:
Сообщений: 104751
Sky1992
Glory, в том-то и проблема, данные импортируются из таблицы 1С, админы которой изменения вносить не хотят в свою БД-"сейчас все работает у нас и мы ничего делать не будем".

Ну так это ваша проблема
Без изменения порядка работы ничего не изменится
Даже для CDC нужны будет менять что то в базе
8 авг 13, 13:57    [14681145]     Ответить | Цитировать Сообщить модератору
 Re: Наличие изменений в таблице  [new]
aleks2
Guest
Sky1992
Так вот-как можно реализовать такой механизм без извращения с удалением?Как понять, какое поле изменили и его нужно заменить, а какое пропустить?


Тупо и прямолинейно добавить поле ДатаВремя и заливать каждое утро новую порцайку.
Потом... через год-другой или десяток-другой годиков, как начальство решит, старые записи можно удалять.
8 авг 13, 14:13    [14681228]     Ответить | Цитировать Сообщить модератору
 Re: Наличие изменений в таблице  [new]
therthrth
Guest
данные должны обновляться в MS SQL, к примеру, каждое утро.


Sky1992
Критик
уникальное - это разное на каждой строчке...

вообще, 400 тыс - это 1-5 секунды на полный импорт (+- чуть-чуть)

1)прошу прощения, не правильно выразился-значения этого поля не меняются
2)это в примере 3 столбца, на самом деле их 16. Запрос на очистку+импорт такого кол-ва информации в 400к строк и 16 столбцов отрабатывался 10-12 сек, через годик на него будет уходить около сек 30, что не есть хорошо для меня


овчинка выделки не стоит. этого даже никто не заметит. покажите параметры bcp с помощью которых импортите данные и типы всех колонок таблицы можно без имен. что-то вы слишком много времени указали 10-12 сек для такого маленького количества строк. также от дисковой системы многое зависит. :)
8 авг 13, 14:31    [14681333]     Ответить | Цитировать Сообщить модератору
 Re: Наличие изменений в таблице  [new]
therthrth
Guest
therthrth,

также, приведите пример как чистите таблицу... truncate table или delete from ....?
8 авг 13, 14:36    [14681376]     Ответить | Цитировать Сообщить модератору
 Re: Наличие изменений в таблице  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2414
Sky1992
триггер сделать-было бы интересно какой-нибудь пример увидеть.


http://msdn.microsoft.com/ru-ru/library/ms189799.aspx
8 авг 13, 14:41    [14681425]     Ответить | Цитировать Сообщить модератору
 Re: Наличие изменений в таблице  [new]
Glory
Member

Откуда:
Сообщений: 104751
Sky1992
предложил триггер сделать-было бы интересно какой-нибудь пример увидеть.

Т.е. триггера для таблицы 1С все же админы готовы создать ?
8 авг 13, 14:43    [14681438]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить