|
MS SQL хранение данных
georgebgk, timurhv, Климов Сергей, Михаил Козлов, LuckyStar, ptiz, novichok79, Скучный бух, Linemoon, Галахад, Lama12, Web00001, H A D G E H O G s, Мультук, osa1C, maxab72, alkras, НачинающийВосьмерочн, fbear, MM, adani_22, Hawk_1c, Chai Nic, ooolledj, serpentt, BDA80, elka302, trad, orakool, oleg_km, scanduta, Smit1C, Amfiaray, Ботаник Гарден Меран, katamoto, RAJAH, Barrel0726, BOOL, 1Снег, RVN, vbus, Aleksey, abfm, obs191, shuhard, 2S, Zamestas, Silgis, ivanov-i-i, Грю
| ☑ |
0
nikast
08.10.24
✎
17:29
|
Коллеги, друзья, любители печенек.. у меня вопрос, и я решил проконсультироваться с Вами.
Имеем: SQL и таблица данных (ID, Name) в ней 40 млн записей.
Необходимо к каждой записи привязать данные (примерно 100 записей к каджой из 40 млн).
Характер данных: структурированные данные (ID, DATE, DATA)
Внимание вопрос: как правильнее выбрать решение
1) Таблица, в которой будет 4 миллиарда записей (4*100)
2) В первой таблице создать поле blob и хранить данные в текстовом виде (понимаю, что о фильтрации можно будет забыть)
3) Пойти по пути 1с, котрые вынесли журнал ренистрации пользоватлей, в текстовый документ и при необходимости бегать по нему.
Эти данные могу понадобиться, а могу и нет (по запросу)
Может кто-то решал подобную задачу. Спасибо.
|
|
1
asady
08.10.24
✎
17:30
|
(0) я за 1 вариант
|
|
2
PR
08.10.24
✎
17:30
|
(0) Ты ничего не сказал, что могло бы определить выбор
Не привел ни одного примера использования, кроме "Эти данные могу понадобиться, а могу и нет"
|
|
3
PR
08.10.24
✎
17:30
|
Хотя (1) это не помешало сделать выбор
|
|
4
nikast
08.10.24
✎
17:32
|
(2) Согласен, в первой таблице Заказ-Наряд, во второй таблице записи с действиями, которые сотрудник проделал, чтобы выпонить этот заказ.
Поэтому я и написал про аналог журнала регистрации 1с
|
|
5
nikast
08.10.24
✎
17:36
|
(3) Вопрос логичности, скорости роста БД, так как данные по Заказ-Наряд создаются очень активно.
|
|
6
asady
08.10.24
✎
17:39
|
(0) для нормальной СУБД на нормальном серваке - 4 млрд записей индексированных - Обычная работа
|
|
7
nikast
08.10.24
✎
17:43
|
(6) Да, согласен. Но какие минусы, если бы я выбрал хранение в BLOB, я бы сэкономил на месте (на размерах бд) ?
|
|
8
asady
08.10.24
✎
17:46
|
(7) не факт
а производительность точно ниже.
|
|
9
BDA80
08.10.24
✎
17:49
|
Не понимаю, а почему не сделать 2 таблицы, как и принято в реляционных базах - заказ-наряды и действия по ним?
|
|
10
nikast
08.10.24
✎
17:59
|
(9) Потому что, 4 млрд записей это за 1 год, а что будет дальше? Например 10 млрд...
Логичнее было бы спросить - отдельная таблица, это единственное верное решение?
|
|
11
asady
08.10.24
✎
18:08
|
(10) если тебя смущает размер базы - то не парься для снижения дисковой нагрузки есть варианты - например использование разных файловых групп для разных таблиц
|
|
12
PR
08.10.24
✎
18:12
|
(4) Конечно же действия отдельно
И вопросы производительности здесь вообще не определяющи и притянуты за уши
|
|
13
Грю
08.10.24
✎
18:44
|
(0) Объясни, в чем проблема? Почему нужно выбирать, и что нужно экономить? У тебя недостаточно свободного места на сервере, или что?
Самое правильное решение - вторая таблица.
Если с этим у тебя возникают какие-то проблемы, то их нужно решать отдельно, а не выбирать компромиссы.
|
|
14
nikast
08.10.24
✎
19:26
|
Вопрос был какой подход выбрать, если все склоняются к отдельной таблице единогласно, отлично.. подумал, может будут другие мнения.
Меня отдельно смутил вопрос журнала регистрации в 1с, который лежал отдельно от бд, в этом был же какой-то сакральный смысл.
|
|
15
PR
08.10.24
✎
19:24
|
(14) Сакральный смысл прост
В журнал регистрации пишется как когда транзакция удалась, так и когда нет
А в базу можно писать только когда транзакция удалась
|
|
16
nikast
08.10.24
✎
19:26
|
Принято, спасибо за ответы.
|
|
17
Web00001
09.10.24
✎
07:26
|
(15)> в этом был же какой-то сакральный смысл.
Смысл в том, чтобы хранить логи отдельно. Ты можешь это интегрировать с общей системой хранения логов. Ты можешь прикрутить туда свою систему ротации логов. Основная идея здесь в том, чтобы хранить логи так как это делает весь остальной мир - отдельно и в текстовом файле.
|
|
18
Chai Nic
09.10.24
✎
08:23
|
(15) Можно же было разделить "прикладной" журнал регистрации и "системный". Про транзакции писать в системный, а про то, что произошло в базе - в прикладной, хранящийся внутри базы.
|
|
19
ptiz
09.10.24
✎
10:47
|
(0) Если версия SQL позволяет использовать сжатие данных - оно в разы может сэкономить место.
|
|