SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Microsoft SQL Server » Раскидать БД по файловым группам (оптимизация работы с БД)
Раскидать БД по файловым группам [сообщение #2245] Tue, 16 May 2023 18:25 Переход к следующему сообщению
GrigoryFomin в настоящее время не в онлайне  GrigoryFomin
Сообщений: 91
Зарегистрирован: April 2023
Member
Подскажите, может не прав. Есть БД учета МЦ, работает много лет на FireBird. Уперлись в производительность и скорость формирования отчетов. Было принято решение переделать все на MSSQL и провести рефакторинг структуры БД.
Возникла здравая мысль - раскидать "тяжелые" данные по файловым группам. Индексы, журнал остатков, журналы операций, справочники, поля типа XML, первичный и внешний ключи, блобы. Ну таблицу закинуть в нужную файловую группу получилось. А вот XML-поля и PK/FK как перенести в другие файловые группы? Ни dbForge, ни родная SMSS мне помочь сходу не смогли. Есть ли в этом вообще резон?
нагрузка - справочник товаров - 1млн позиций с кучей полей (30 полей), большинство которых можно в XML запихнуть - они не первой необходимости - просто свойства товара, операций перемещения - 5млн. с перспективой роста, тоже куча полей, тоже хочется в XML второстепенные впихнуть, журнал накладных поменее, но тоже к миллиону приближается, ну и текущие остатки - это все эти товары, да по объектам, коих под 50, да по каждому дню.....
Еще у товаров сложная группировка - справочник товаров бухи хотят грузить все в оперативу и в грид, потом отсортировывать то, что им надо (согласен, тупо, но им нравится клиентская сортировка - сначала видеть все, потом по критериям их отсеивать).
Под такую БД готовы выделить сервак с 128 гигами оперативы, ксеон там какой-то, рейд, лишь бы все быстро работало. Может кто гайды для MSSQL кинет ссылкой? СУБД вроде продвинутая, но некоторые моменты с ходу понять не могу.
не прошу конкретной помощи - академические посыли приветствуются, хочется понять самому как правильно это организовать. новая СУБД - есть интерес развиваться. Времени правда не сильно много на это.
Спасибо за внимание.

[Обновления: Tue, 16 May 2023 18:26]

Известить модератора

Re: Раскидать БД по файловым группам [сообщение #2248 является ответом на сообщение #2245] Tue, 16 May 2023 18:47 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 360
Зарегистрирован: June 2022
Senior Member
В файловые группы можно выносить таблицы. Отдельные индексы и поля выносить нельзя.
Возьмите книгу по MS SQL и почитайте. Окупится.

И 30 млн записей на таблицу - это не так что бы и много.

Я не уверен, что с таким уровнем знания СУБД вы сможете решить проблему скорости при смене СУБД. А вот на переписывание времени потратите очень много.
Что за неразрешимые проблемы были на FB?
Re: Раскидать БД по файловым группам [сообщение #2250 является ответом на сообщение #2248] Tue, 16 May 2023 18:57 Переход к предыдущему сообщениюПереход к следующему сообщению
GrigoryFomin в настоящее время не в онлайне  GrigoryFomin
Сообщений: 91
Зарегистрирован: April 2023
Member
BlackEric писал(а) Tue, 16 May 2023 18:47
В файловые группы можно выносить таблицы. Отдельные индексы и поля выносить нельзя.
Возьмите книгу по MS SQL и почитайте. Окупится.

И 30 млн записей на таблицу - это не так что бы и много.

Я не уверен, что с таким уровнем знания СУБД вы сможете решить проблему скорости при смене СУБД. А вот на переписывание времени потратите очень много.
Что за неразрешимые проблемы были на FB?
СУБД ессно, не знаю, большие пацаны посоветовали ее, или постгри Smile)))) Вот хочу ее оседлать. FireBird конечно попроще в разы, привлекло в MSSQL? что можно раскидывать данные, XML. Я просто читало, что блобы можно вынести в файлстримы, а их в отдельные файловые группы, подумал, что там можно с любыми полями. Да и логично, что блобы, коим является и XML как я понял из документации, тоже можно вынести отдельно. Там данные второстепенные
Re: Раскидать БД по файловым группам [сообщение #2253 является ответом на сообщение #2250] Tue, 16 May 2023 19:36 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 360
Зарегистрирован: June 2022
Senior Member
The Art of SQL Server FILESTREAM

По файлстримам есть такая неплохая книжка.

А так я бы вместо xml раскладывал данные по таблицам. Тягать xml из FileStream - это не быстро. Если конечно он вам из внешней системы приходит, то да.
Или можно использовать json.
Re: Раскидать БД по файловым группам [сообщение #2254 является ответом на сообщение #2253] Tue, 16 May 2023 19:50 Переход к предыдущему сообщениюПереход к следующему сообщению
GrigoryFomin в настоящее время не в онлайне  GrigoryFomin
Сообщений: 91
Зарегистрирован: April 2023
Member
прошу вопроса за чайниковский вопрос - а разве тип поля JSOn есть из коробки в MS SQL?
Re: Раскидать БД по файловым группам [сообщение #2255 является ответом на сообщение #2253] Tue, 16 May 2023 19:53 Переход к предыдущему сообщениюПереход к следующему сообщению
GrigoryFomin в настоящее время не в онлайне  GrigoryFomin
Сообщений: 91
Зарегистрирован: April 2023
Member
BlackEric писал(а) Tue, 16 May 2023 19:36


А так я бы вместо xml раскладывал данные по таблицам. Тягать xml из FileStream - это не быстро. Если конечно он вам из внешней системы приходит, то да.
ну я так понимаю, XML может индексировать содержимое, что думаю даст прирост производительности при вытягивании из него данных при запросе. Вообще, думаю хранить доп.инфу либо в XML, либо отдельную таблицу со структурой IDтовара, IDсвойства, ЗначениеСвойства. По Вашему опыту - что будет в выборке быстрее?

Re: Раскидать БД по файловым группам [сообщение #2256 является ответом на сообщение #2254] Tue, 16 May 2023 22:40 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 360
Зарегистрирован: June 2022
Senior Member
GrigoryFomin писал(а) Tue, 16 May 2023 19:50
прошу вопроса за чайниковский вопрос - а разве тип поля JSOn есть из коробки в MS SQL?
Специального типа данных нет. Есть набор функций, позволяющий работать со строкой как с json объектом.
Re: Раскидать БД по файловым группам [сообщение #2257 является ответом на сообщение #2255] Tue, 16 May 2023 22:42 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 360
Зарегистрирован: June 2022
Senior Member
GrigoryFomin писал(а) Tue, 16 May 2023 19:53
BlackEric писал(а) Tue, 16 May 2023 19:36


А так я бы вместо xml раскладывал данные по таблицам. Тягать xml из FileStream - это не быстро. Если конечно он вам из внешней системы приходит, то да.
ну я так понимаю, XML может индексировать содержимое, что думаю даст прирост производительности при вытягивании из него данных при запросе. Вообще, думаю хранить доп.инфу либо в XML, либо отдельную таблицу со структурой IDтовара, IDсвойства, ЗначениеСвойства. По Вашему опыту - что будет в выборке быстрее?
Вообще при проектировании системы имеет смысл сделать демку и проверить.
Я бы делал отдельные таблицы справочников.
Re: Раскидать БД по файловым группам [сообщение #2258 является ответом на сообщение #2257] Tue, 16 May 2023 23:04 Переход к предыдущему сообщениюПереход к следующему сообщению
GrigoryFomin в настоящее время не в онлайне  GrigoryFomin
Сообщений: 91
Зарегистрирован: April 2023
Member
BlackEric писал(а) Tue, 16 May 2023 22:42
GrigoryFomin писал(а) Tue, 16 May 2023 19:53
BlackEric писал(а) Tue, 16 May 2023 19:36


А так я бы вместо xml раскладывал данные по таблицам. Тягать xml из FileStream - это не быстро. Если конечно он вам из внешней системы приходит, то да.
ну я так понимаю, XML может индексировать содержимое, что думаю даст прирост производительности при вытягивании из него данных при запросе. Вообще, думаю хранить доп.инфу либо в XML, либо отдельную таблицу со структурой IDтовара, IDсвойства, ЗначениеСвойства. По Вашему опыту - что будет в выборке быстрее?
Вообще при проектировании системы имеет смысл сделать демку и проверить.
Я бы делал отдельные таблицы справочников.
вы топите за олдскул, вместо нововведений? Я очень не против, тем более, это кроссСУБД получится. А что насчет HierarнhID скажите? компонентов для его использования нет толковых как я понял, все сводится в преобразование HyID в ID-ParentID
Re: Раскидать БД по файловым группам [сообщение #2259 является ответом на сообщение #2256] Tue, 16 May 2023 23:06 Переход к предыдущему сообщениюПереход к следующему сообщению
GrigoryFomin в настоящее время не в онлайне  GrigoryFomin
Сообщений: 91
Зарегистрирован: April 2023
Member
BlackEric писал(а) Tue, 16 May 2023 22:40
GrigoryFomin писал(а) Tue, 16 May 2023 19:50
прошу вопроса за чайниковский вопрос - а разве тип поля JSOn есть из коробки в MS SQL?
Специального типа данных нет. Есть набор функций, позволяющий работать со строкой как с json объектом.
спасибо за наводку. О сколько нам открытий чудных готовят просвещенья дух. И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. Спасибо за помощь!
Re: Раскидать БД по файловым группам [сообщение #2262 является ответом на сообщение #2248] Wed, 17 May 2023 02:09 Переход к предыдущему сообщениюПереход к следующему сообщению
shigor в настоящее время не в онлайне  shigor
Сообщений: 26
Зарегистрирован: March 2023
Географическое положение: НиНо
Junior Member
BlackEric писал(а) Tue, 16 May 2023 18:47
В файловые группы можно выносить таблицы. Отдельные индексы и поля выносить нельзя.
отдельные индексы так же можно выносить в свои файловые группы, соответственно создав индекс на каждом поле мы можем вынести его в свою файловую группу, ну и оригинал этих полей будет в самой таблице. получится бредовый, жутко "дорогой" columnstore. но получится же!
(как рекомендацию к реализации прошу не рассматривать)
Re: Раскидать БД по файловым группам [сообщение #2263 является ответом на сообщение #2245] Wed, 17 May 2023 02:23 Переход к предыдущему сообщениюПереход к следующему сообщению
shigor в настоящее время не в онлайне  shigor
Сообщений: 26
Зарегистрирован: March 2023
Географическое положение: НиНо
Junior Member
у Вас совсем мелкие объемы чтобы заморачиваться с отдельными файловыми группами, xml и уж тем более иерархиями.
сделайте сначала в лоб, потом уже будете искать узкие места, оптимизировать и применять всякие новомодные штучки.
Re: Раскидать БД по файловым группам [сообщение #2266 является ответом на сообщение #2263] Wed, 17 May 2023 12:46 Переход к предыдущему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
shigor
. у Вас совсем мелкие объемы чтобы заморачиваться с отдельными файловыми группами, xml и уж тем более иерархиями.
сделайте сначала в лоб, потом уже будете искать узкие места, оптимизировать и применять всякие новомодные штучки.
не взлетит.

тут программист нужен ©
Предыдущая тема: интеграция SQL
Следующая тема: Выделение нескольких значений в одной коллонке
Переход к форуму:
  


Текущее время: Thu Nov 21 16:36:39 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00774 секунд