Начало » Использование СУБД » Microsoft SQL Server » Раскидать БД по файловым группам (оптимизация работы с БД)
Раскидать БД по файловым группам [сообщение #2245] |
Tue, 16 May 2023 18:25 |
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: Раскидать БД по файловым группам [сообщение #2250 является ответом на сообщение #2248] |
Tue, 16 May 2023 18:57 |
GrigoryFomin
Сообщений: 91 Зарегистрирован: April 2023
|
Member |
|
|
BlackEric писал(а) Tue, 16 May 2023 18:47В файловые группы можно выносить таблицы. Отдельные индексы и поля выносить нельзя.
Возьмите книгу по MS SQL и почитайте. Окупится.
И 30 млн записей на таблицу - это не так что бы и много.
Я не уверен, что с таким уровнем знания СУБД вы сможете решить проблему скорости при смене СУБД. А вот на переписывание времени потратите очень много.
Что за неразрешимые проблемы были на FB?
СУБД ессно, не знаю, большие пацаны посоветовали ее, или постгри )))) Вот хочу ее оседлать. FireBird конечно попроще в разы, привлекло в MSSQL? что можно раскидывать данные, XML. Я просто читало, что блобы можно вынести в файлстримы, а их в отдельные файловые группы, подумал, что там можно с любыми полями. Да и логично, что блобы, коим является и XML как я понял из документации, тоже можно вынести отдельно. Там данные второстепенные
|
|
|
|
|
|
|
Re: Раскидать БД по файловым группам [сообщение #2257 является ответом на сообщение #2255] |
Tue, 16 May 2023 22:42 |
BlackEric
Сообщений: 360 Зарегистрирован: June 2022
|
Senior Member |
|
|
GrigoryFomin писал(а) Tue, 16 May 2023 19:53BlackEric писал(а) Tue, 16 May 2023 19:36
А так я бы вместо xml раскладывал данные по таблицам. Тягать xml из FileStream - это не быстро. Если конечно он вам из внешней системы приходит, то да.
ну я так понимаю, XML может индексировать содержимое, что думаю даст прирост производительности при вытягивании из него данных при запросе. Вообще, думаю хранить доп.инфу либо в XML, либо отдельную таблицу со структурой IDтовара, IDсвойства, ЗначениеСвойства. По Вашему опыту - что будет в выборке быстрее?
Вообще при проектировании системы имеет смысл сделать демку и проверить.
Я бы делал отдельные таблицы справочников.
|
|
|
Re: Раскидать БД по файловым группам [сообщение #2258 является ответом на сообщение #2257] |
Tue, 16 May 2023 23:04 |
GrigoryFomin
Сообщений: 91 Зарегистрирован: April 2023
|
Member |
|
|
BlackEric писал(а) Tue, 16 May 2023 22:42GrigoryFomin писал(а) Tue, 16 May 2023 19:53BlackEric писал(а) Tue, 16 May 2023 19:36
А так я бы вместо xml раскладывал данные по таблицам. Тягать xml из FileStream - это не быстро. Если конечно он вам из внешней системы приходит, то да.
ну я так понимаю, XML может индексировать содержимое, что думаю даст прирост производительности при вытягивании из него данных при запросе. Вообще, думаю хранить доп.инфу либо в XML, либо отдельную таблицу со структурой IDтовара, IDсвойства, ЗначениеСвойства. По Вашему опыту - что будет в выборке быстрее?
Вообще при проектировании системы имеет смысл сделать демку и проверить.
Я бы делал отдельные таблицы справочников.
вы топите за олдскул, вместо нововведений? Я очень не против, тем более, это кроссСУБД получится. А что насчет HierarнhID скажите? компонентов для его использования нет толковых как я понял, все сводится в преобразование HyID в ID-ParentID
|
|
|
|
|
|
Re: Раскидать БД по файловым группам [сообщение #2266 является ответом на сообщение #2263] |
Wed, 17 May 2023 12:46 |
МП
Сообщений: 887 Зарегистрирован: August 2022 Географическое положение: бурятский тун...
|
Senior Member |
|
|
shigor. у Вас совсем мелкие объемы чтобы заморачиваться с отдельными файловыми группами, xml и уж тем более иерархиями.
сделайте сначала в лоб, потом уже будете искать узкие места, оптимизировать и применять всякие новомодные штучки. не взлетит.
тут программист нужен ©
|
|
|
Переход к форуму:
Текущее время: Thu Nov 21 16:36:39 GMT+3 2024
Общее время, затраченное на создание страницы: 0.00774 секунд
|