Оптимизация базы данных: нужна действительно большая база данных для тестирования некоторых функций сервера SQL - PullRequest
0 голосов
/ 23 марта 2010

Я провел оптимизацию базы данных для базы данных размером до 3 ГБ. Нужна действительно большая база данных для тестирования оптимизации.

Ответы [ 4 ]

3 голосов
/ 23 марта 2010

Простое создание большого количества данных и помещение их в таблицу ничего не доказывает о СУБД, самой базе данных, выполняемых к ней запросах или приложениях, взаимодействующих с ними, и все это влияет на производительность базы данных.зависимая система.

Фраза «Я провел оптимизацию базы данных для [базы данных] объемом до 3 ГБ» вызывает большие сомнения.Какие базы данных?На какой платформе?Используя какое оборудование?Для каких целей?Для какого масштаба?Какой была модель?Что вы оптимизировали?Какой у вас был бюджет?

Эти же вопросы относятся к любой базе данных, независимо от ее размера.Я могу вам сказать из первых рук, что «оптимизация» базы данных объемом 250 ГБ - это не то же самое, что оптимизация базы данных объемом 25 ГБ, что, безусловно, не то же самое, что оптимизация базы данных объемом 3 ГБ.Но это не только из-за базы данных размер , но и потому, что базы данных, содержащие 250 ГБ данных, неизменно отвечают требованиям, которые сильно отличаются от требований к базе данных 3 ГБ.

Нет барьера магического размера, при котором вам нужно изменить стратегию оптимизации;каждая оптимизация требует глубокого знания конкретной модели данных и требований к ее использованию.Может быть, вам просто нужно добавить несколько индексов.Может быть, вам нужно удалить несколько индексов.Возможно, вам нужно нормализовать, денормализовать , переписать пару неверных запросов, изменить семантику блокировки, создать хранилище данных, внедрить кеширование на уровне приложения или изучить различные виды вертикального масштабирования, доступные для вашего конкретного случая.платформа базы данных.

Я утверждаю, что вы тратите свое время на то, чтобы создать «действительно большую» базу данных с целью «оптимизировать» ее без каких-либо особых требований.Различные инструменты для генерации данных доступны для случаев, когда вам нужно сгенерировать подходящие специфические шаблоны для тестирования по специфическому набору сценариев, но пока у вас нет этой информации под рукой, вы выиграете 'Достигнуть очень много можно с помощью базы данных, полной неорганизованных данных испытаний.

1 голос
/ 23 марта 2010

Лучший способ сделать это - создать свою схему и написать скрипт, чтобы заполнить ее множеством случайных (ish) фиктивных данных.Случайный, означающий, что ваши текстовые поля не обязательно должны иметь смысл.'ish', означающее, что распределение данных и шаблоны, как правило, должны отражать ваше реальное использование БД.

Редактировать: быстрый Поиск в Google показывает ряд коммерческих инструментов, которые сделают это дляесли вы не хотите писать собственные скрипты заполнения: Генератор данных БД , Генератор данных DTM .Отказ от ответственности: я никогда не использовал ни один из них и не могу говорить об их качестве или полезности.

0 голосов
/ 23 марта 2010

Я регулярно использую Генератор данных Red-Gate для тестирования проблем, а также нагрузок на реальных системах, и он работает довольно хорошо. Тем не менее, я бы согласился с мнением Ааронна в том, что общий размер базы данных не так важен, как модели использования и бизнес-модель. Например, создание 10 ГБ данных для таблицы, которая в конечном итоге не будет получать трафик, не даст никакого представления об оптимизации. Цель состоит в том, чтобы скопировать ожидаемые транзакции и нагрузки на хранилище, которые вы ожидаете, чтобы определить узкие места до того, как они возникнут.

0 голосов
/ 23 марта 2010

Вот бесплатная процедура, которую я написал для генерации случайных имен людей. Быстро и грязно, но работает и может помочь.

http://www.joebooth -consulting.com / продукты / genRandNames.sql

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...