|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
SQL2008 Использовать MERGE. 22187762 -- только имя поля поменять. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 13:14 |
|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич, Мне необходимо, чтобы таблица не увеличивалась, а записывала только новые данные. Есть 24 точек по которым измеряет прибор, так вот я не хочу, чтобы у меня постоя увеличивались строчки, мне достаточно, чтобы они перезаписывались, как только поступят новые данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 13:47 |
|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
Для того, чтобы делать такие вещи, в таблице-источнике очень желательно иметь уникальное монотонно возрастающее поле (ну и индекс по нему). Дата очень плоха для этих целей, нужны будут дополнительные приседания для того, чтобы не пропускать данные или не тащить лишнего. Особенно будет все уныло, если эта дата формируется не на стороне сервера, а на стороне софта, который пишет данные, причем по-разному для каждого прибора. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 13:52 |
|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич, Ну а если с уникальным индексом, то нельзя ли просто придерживаться к определенному количеству строчек? Например удалить старые точки и записать новые? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 14:06 |
|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
ArtDem, через пару лет в таблице появился 300млн строк. Ваши действия по сравнению? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 14:14 |
|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
ArtDem, через пару лет в таблице появился 300млн строк. Ваши действия по сравнению? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 14:18 |
|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
Владислав Колосов, Это уже вторая часть истории, на данный момент у меня за год скопилось записей на 340 тыс. Можете помочь с реализацией? Это опыт пусть если - это будет провальным. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 14:31 |
|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
ArtDem, как часто добавляются записи в таблицу прибора? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 15:18 |
|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
Владислав Колосов, Сейчас все в тестовом режиме раз в час записывает, потом через каждые 2-4 часа. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 15:23 |
|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
ArtDem, в таком случае проще добавить в таблицу записей колонку-нумератор identity. На принимающей стороне создайте таблицу, в которой будете сохранять последний полученный номер строки. При получении забирать все строки, номер которых имеют бОльшее значение. И так цикл повторять. Извлекли, сохранили номер. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 15:42 |
|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
Владислав Колосов ArtDem, в таком случае проще добавить в таблицу записей колонку-нумератор identity. На принимающей стороне создайте таблицу, в которой будете сохранять последний полученный номер строки. При получении забирать все строки, номер которых имеют бОльшее значение. И так цикл повторять. Извлекли, сохранили номер. Тот же MERGE, только в виде велосипеда ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 15:47 |
|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
SQL2008 Тот же MERGE, только в виде велосипеда Нет, это принципиально другой способ. Он НЕ требует вычитки ВСЕХ данных с таблицы источника. Если таблица большая - то это очень важный момент. Владислав Колосов в таком случае проще добавить в таблицу записей колонку-нумератор identity. Для RCSI лучше timestamp + записи только меньше, чем MIN_ACTIVE_ROWVERSION ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 15:51 |
|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
Господа, с трудом Вас понимаю, скил все таки у меня не такой. Решил сделать вот такой велосипед: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Понятно, что это работать не будет как я хочу, можно ли как то жесткие границы поставить, чтобы записывал новое, а старое удалял? Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 17:52 |
|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
msLex, самый простой способ, как мне кажется, это выборка из темпоральной таблицы применительно ситуации автора, когда показания пишутся редко. Этот способ хорош тем, что чтение не конфликтует с записью и можно читать только свежие данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 18:08 |
|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
авторЕсть 24 точек по которым измеряет прибор, так вот я не хочу, чтобы у меня постоя увеличивались строчки, мне достаточно, чтобы они перезаписывались, как только поступят новые данные авторСтолбцов Point_ID=24 есть еще столбец Epoch - время измерения. Нужно, чтобы записывались только свежие данные. Владислав Колосов msLex, самый простой способ, как мне кажется, это выборка из темпоральной таблицы применительно ситуации автора, когда показания пишутся редко. Этот способ хорош тем, что чтение не конфликтует с записью и можно читать только свежие данные. Сдается мне, автор не очень сам знает или не может объяснить, что такое эти свежие данные . Epoch не подходит, IDENTITY видимо тоже что то не то делает. авторможно ли как то жесткие границы поставить, чтобы записывал новое, а старое удалял? Что такое "старое", если у вас добавлялись только не существующие строки? Только MERGE вам поможет если у вас там перезаписывается на основном сервере. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 22:03 |
|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
Владислав Колосов, Почитал я про темпоральные таблицы, я так понимаю, что они фиксирует изменения, ну и получиться тоже самое что сейчас и имеется, правильно ли я понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 22:07 |
|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
PizzaPizza, Есть две таблицы, Results и Results1. В Results записывает прибор свои измерения, Point id это количество измеряемых точек, измеряет прибор раз в час и отправляет данные в БД в таблицу Result Epoch это время, когда прибор измерил точку. В Results1 запрашивал только новые, свежие, последние данные с таблицы Results и чтобы в таблице Results1 были только актуальные данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2020, 11:34 |
|
SQL Server Management Studio (SSMS) Запросы между серверам
|
|||
---|---|---|---|
#18+
ArtDem, В темпоральные таблицы попадают и вставки. Для каждой строки указывается ее "срок годности". Если происходит только вставки, то достаточно проверять дату "от", а дату "по" игнорировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2020, 12:32 |
|
|
start [/forum/topic.php?fid=46&gotonew=1&tid=1685704]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 156ms |
0 / 0 |