Конфигурирование SQL для оптимальной производительности … SSD или жесткий диск?

PowerShell берет поток объектов от, Добираются-WMIObject, сортируя и выбирая подмножество, затем производя текстовое представление остающихся объектов - не просто работающий с чистым текстом. Если Вы хотите получить чистое текстовое представление, можно просто изменить вызов на таблицу формата для использования избранного объекта вместо этого.

8
задан 28 September 2009 в 19:48
10 ответов

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

Для необработанной производительности SSD предлагают много преимуществ, при этом основной - то, что время поиска эффективно 0, что означает, что весь маленький HD совершает нападки, база данных делает обрабатываются намного быстрее.

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

Для лучшего понимания того, почему они работают настолько лучше, прочитайте эту статью из Anandtech на SSD. Он вдается в большие подробности дисков, что хорошо, что не, и входы и выходы того, как они работают. Наверху также ссылка на последующие статьи, который покрывает последнюю серию дисков.

14
ответ дан 2 December 2019 в 22:42
  • 1
    С точки зрения стирания из-за ограниченных циклов записи, хорошие SSD приближаются к безопасности вращающих дисков в эти дни из-за комбинации большей возможности цикла записи отдельных ячеек, пишут слияние " tricks" уменьшать циклы блока записи, требуемые, и алгоритмы выравнивания нагрузки. Даже для высоких приложений загрузки IO как очень активная база данных хороший SSD не намного более вероятен изделием перед стандартной заменой затем вращающий диск. Просто сохраните постоянными, регулярно тестируемыми, резервные копии как с любым решением для устройства хранения данных. –  David Spillett 27 September 2009 в 16:31
  • 2
    Я соглашаюсь, that' s, почему я называю это беспокойством не выставочный стопор..., дешевый диск имеет настоящую проблему с этим прямо сейчас и it' s больше микропрограммной проблемы. В течение 6 месяцев I don' t думают, что уровень износа будет даже больше подниматься, it' s прогрессировал очень хорошо, очень быстро. –  Nick Craver♦ 27 September 2009 в 16:47

я рекомендую Вам прочитать следующую газету, Перемещающую Серверное хранилище в SSD: Анализ Компромиссов, вполне хорошее чтение.

По-моему, существует недостаточно преимуществ от SDDs в области сервера все же. Возможно, через несколько лет их могло бы стоить купить, бот на данный момент, жесткий диск является лучшим выбором.

3
ответ дан 2 December 2019 в 22:42

Вы могли установить свое программное обеспечение Операционная система и SQL на стандартном жестком диске и затем добавить SSD, чтобы просто содержать Ваши файлы базы данных. Это должно ограничить количество записей, которые испытывает твердотельный диск, и также максимизируйте сумму пространства, доступного для Ваших данных по диску.

4
ответ дан 2 December 2019 в 22:42

Ответ Nick Craver хорош; я просто хочу добавить два протеста к SSD, что я думаю, что люди должны знать:

a) Проблемы SSD с износом записи не уходят, они фундаментальны для используемых ячеек флэш-памяти. Ячейки SLC имеют намного более высокую износостойкость записи, чем MLC, таким образом, OP должен полагать, что получение SLC приезжает MLC. Конечно, SLC является также значительно более дорогим.

b) Текущие данные кэша дисков на диске перед выписыванием его. Таким образом существует риск потери данных, если электроснабжение отключено во время операции записи. Это - что-то, что можно работать вокруг, но кэш там и для производительности, и для сокращения усиления записи.

По моему скромному мнению, ни одно из вышеупомянутого не является dealbreakers. Я был бы готов развернуть SSD на производстве сегодня, но с некоторым планированием сначала.

  1. Если крошечный риск потери данных недопустим, то стандартные жесткие диски SAS с выключенным кэшированием данных могут быть лучшим выбором.
  2. Я думаю, что необходимо измерить объем данных, записанный в твердотельный диск в нормальный день. На основе этого и производителей носят спецификации, вычисляют ожидаемое время жизни SSD с Вашим шаблоном использования. Если ожидаемое время жизни ниже, чем серверы запланировали время жизни, то назначенный приоритетная заменяющая дата для SSD. Точно так же, как части самолета выгрузите его, прежде чем это станет вероятным для сбоя.
2
ответ дан 2 December 2019 в 22:42
  • 1
    Части самолета? Не лучшая аналогия, если Вы расширяете его до шаттлов NASAs, которые работают на компьютерах IBM AP101S с огромным 1 ГБ RAM и никакого жесткого диска. Потребность в предсказуемости и надежности, являющейся выше весь другие соображения. –  CJM 29 September 2009 в 00:40

Лично, я не использовал бы SSD по причинам, уже упомянутым; они будут постепенно замедляться перед возможным сбоем. Мы действительно еще не знаем, когда это будет - текущие оценки - просто это - оценки. Помните, когда все мы купили те 'indestructable' CD в early/mid-80s? Несколько лет спустя мы расценили устройство хранения данных термина данных по CD столько же безумия сколько использующий гибкие диски.

Если у Вас будут свои аппаратные средства, ОС и DB все настроенные правильно, то Вы не должны будете играть на деньги на SSD.

Через несколько лет, когда продукты назреют немного, это будет другой сценарий. Но до тех пор...

0
ответ дан 2 December 2019 в 22:42

Некоторая вещь иметь в виду.

При ударе базы данных достаточно, которую замедляют чтения, и Вам нужны SSD, то необходимо зафиксировать индексы или взгляд на добавление большего количества RAM к серверу.

Большинству серверов баз данных, когда-то полностью настроенных, не нужны SSD для выполнения хорошо.

1
ответ дан 2 December 2019 в 22:42
  • 1
    Мои чтения являются not' t на самом деле замедляющийся. Мы пытаемся оптимизировать " первый hit" запросите, где это сопровождает 120-130ms в первый раз, когда запрос выполняется и 80 мс после этого. Эти времена исключают создание планов запросов и чтение соответствующей статистики. Мы видим, что разница во времени в нашем случае потрачена, читая из диска, таким образом пытаясь исследовать, как я могу сделать тот первый хит ближе к 80 мс. –  spoon16 29 September 2009 в 00:46
  • 2
    Таким образом, даже после первого показа, все еще требуется 80 мс? Это - главным образом чтения данных или много ЦП (агрегирование или сортирующий)? Все еще думайте, что существует много комнаты для " traditional" оптимизация прежде, чем идти в экзотические технологии хранения. –  BradC 29 September 2009 в 01:28
  • 3
    Если необходимо перейти к диску на первом показе запроса, то SQL вышибает данные из кэша по некоторым причинам. Можно сначала хотеть посмотреть на то, какова продолжительность жизни страницы. Если it' s низко затем больше RAM в порядке. What' s Ваше отношение удачного обращения в кэш прежде, в течение и после запроса? Если it' s ниже 99,8% или таким образом индексация и больше RAM в порядке. Вы делаете КАКИЕ-ЛИБО сканирования? Раз так затем больше индексации может быть в порядке. –  mrdenny 29 September 2009 в 03:20
  • 4
    На тяжелой записью рабочей нагрузке с записью - посредством кэширования (т.е. данные физически согласился на диск перед возвратами вызова) необходимо получить заметно лучшую производительность записи от SSD, предположив, что приложением действительно является связанный ввод-вывод. Обратите внимание, что это - предпочтительная стратегия кэширования SQL Server, особенно на SAN, и MS требует, чтобы SAN гарантировали это поведение получить сертификацию для использования с SQL Server. –  ConcernedOfTunbridgeWells 17 May 2010 в 13:58

Статья Microsoft Research интересуется стоимостью на Гбит, а не увеличение производительности. Это на самом деле не устанавливает и тестирует диски, но использует бросающий ретро алгоритм на основе файлов журнала с фактических серверов.

Некоторые вещи, которые приходят на ум с SSD и SQL:

1/, Если Вы забыли добавлять правильные индексы, SSD, будет намного более прощающим, поскольку случайный ищут, времена являются настолько низкими.

Затраты 2/являются путем вниз против того, когда то исследование было сделано и для маленьких веб-приложений, скажите для выполнения бэкэнда телефонного приложения, не серверов Exchange предприятия, производительность могла сохранить расход по найму консультанта для настройки SQL Server.

3/Единственный твердотельный диск с теневой копией, конечно, добрался, чтобы быть более дешевым, чем набор шпинделей в корпусе RAID и контроллера и соединений. Не говоря уже о питании и нагревании и пространстве стойки.

Шпиндели 4/известны за то, что были частью, которая обычно умирает на компьютере. SSD не имеет никаких подвижных частей, и час бизнес-времени простоя мог стоить цены SSD сразу.

Износ 5/является проблемой, но у них есть способы управлять им (включающий рассеивающиеся блоки), которые возможны, потому что случайным образом фрагментированные данные не замедлят SSD. Кроме того, маленькая база данных по большому диску, вероятно, не износится вовремя для покупки более дешевого нового в будущем.

6/Там является тенденцией к нереляционным базам данных, и выполнение участвует в среднем уровне. Это могло действительно изменить вещи: ввод-вывод к простым неиндексируемым таблицам на твердотельных дисках на черепках без потери производительности и с намного более простым суждением масштабирования. Также экономить на SQL Server лицензирует на черепок.

7/Это все теоретически. Если у кого-либо есть реальное тестирование производительности против шпинделей, я хотел бы видеть.

Luke

0
ответ дан 2 December 2019 в 22:42

Имейте чтение этой статьи (довольно старый - 2009):

Сводка: замените 24 x 15k об/мин диски SAS с 6 (да шесть) SSD и все еще получите на 35% больше производительности. Это было с Intel X25Ms, которые больше не являются большой шишкой для SSD.

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

1
ответ дан 2 December 2019 в 22:42

Одна вещь рассмотреть состоит в том, чтобы иметь вход в систему transatcion жесткий диск и Ваш MDF на SSD. Также продолжительность жизни будет зависеть значительно от типа приложения. OLTP может гореть, хотя быстро, где, поскольку довольно статические данные не должны иметь никаких проблем.

1
ответ дан 2 December 2019 в 22:42

Мой собственный опыт здесь неоднозначен ...

Тестирование на Windows 7 с помощью sql server 2008 express r2. Запуск на рабочем столе i7 с Sandy Bridge и установленной оперативной памятью 12G (DDR3, я думаю?). Извините, что установка была настольной, я сразу после того, как посмотрел, сколько записей я могу управлять на платформе i7, прежде чем построить сервер.

Сначала я провел эти тесты на установленном приводе 1,5 ТБ 7200 об / мин, чтобы получить базовые тайминги.

10k записей с обновлением процессов, оптимизация таблиц для хранения ранее связанных данных в плоской таблице, добавление индексов до тех пор, пока я не уменьшил тайминги до нескольких секунд в качестве отправной точки, затем я продублировал записи до 1,2 миллиона и получил время 0: 3: 37 для тех же обновлений. 3 с половиной минуты неплохо для этой настройки без рейда.

Дублирование записей до 2,56 миллиона дало мне время 0:15:57 - почти 5-кратное увеличение. Скорее всего, в основном из-за подкачки установленной памяти 12 ГБ.

После установки SSD-накопителя и перемещения баз данных время фактически увеличилось до чуть более 20 минут. Я предполагаю, что это связано с тем, что файлы подкачки находятся на каждом жестком диске, и по умолчанию их не было на SSD-диске, поскольку он не был установлен в качестве диска ОС (много синего экрана, когда я пробовал это).

Добавлен файл подкачки на SSD. диск и перезапустите тест, 0: 5: 52 -m, поэтому файл подкачки, похоже, сработал, но я не уверен, что файл подкачки подходит для SSD-диска по всем вышеуказанным причинам, они сильно записаны и может привести к чрезмерному износу диска.

Одно предостережение, я также включил Smartboost на этом диске, и это, возможно, также повлияло на тайминги, будет повторяться без него.

Я лучше всего понимаю, что в наши дни легче добавить память, и по цене, возможно, рейд 0 + 1 гибридных дисков будет почти так же хорошо работать без проблем.

edit: отключил файл подкачки на SSD и позволил интеллектуальному ускорению сделать свое дело, время улучшено с 5:52 до 4:55 минут для 2,56 миллиона записей с серией из 3 обновлений каждая. Далее я попробую использовать кэш ssd 8G на гибридном диске Seagate 750G. тогда, если это неплохо, я попробую их в рейде 0 + 1.

последнее обновление по этому поводу, так как это старый поток, но я хотел опубликовать результаты, которые я получил, чтобы кто-нибудь мог их найти.

Перенос базы данных на Seagate 750G Hybrid с SSD-кешем 8G Я провел тест несколько раз, чтобы SSD-кэш мог учиться. Это дает мне время 5:15 м: с для того же теста, обновляя 2,56 миллиона записей - это достаточно близко к производительности SSD (4:55 м: с с Intel Smartboost), чтобы я мог учитывать стоимость.

Приблизительно на 50 долларов больше (239 долларов против 189 долларов прямо сейчас) гибрид обеспечивает более чем в 6 раз больше памяти и почти такую ​​же производительность без использования какого-либо дополнительного программного обеспечения для оптимизации. В рейде 0 + 1 я рассчитываю значительно улучшить тайминги, и на этот накопитель распространяется 5-летняя гарантия, вот и надеюсь, что он мне не понадобится.

1
ответ дан 2 December 2019 в 22:42

Теги

Похожие вопросы