Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Проверка производительности SQL Server?  [new]
ziktuw
Member

Откуда:
Сообщений: 3552
> Но даже если бы этого не было, неужели более чем в два раза мощный сервер не даст заметное на глаз увеличение производительности на обычных select-ах, объединяющих не больше 4-5 таблиц и использующих грязное чтение?

Не даст в случае, если и старый и новый были придушены маленьким размером страйпа на RAID-массиве. Проверьте это параметр. Должно быть не меньше 64кБ. Если стоит 4кБ, то радуйтесь, что вообще работает.
20 авг 02, 12:44    [47729]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
Moody
Member

Откуда:
Сообщений: 49
Страйп на RAID-массиве 64кБ.

2 Akuz твой запрос шел по сетке, вечером постараюсь провести чистый эксперимент и включу Perfomance Monitor.
20 авг 02, 15:34    [47876]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
akuz
Member [скрыт] [заблокирован]

Откуда:
Сообщений: 6749
--загрузка таблицы


SET NOCOUNT ON
CREATE TABLE t___(
id int IDENTITY PRIMARY KEY,
name VARCHAR(2000)
)

DECLARE @name varchar(2000), @i int
SET @i = 0
WHILE @i < 100000
BEGIN
INSERT t___ VALUES (REPLICATE(LEFT(CONVERT(varchar,@i),4),500))
SET @i = @i + 1
END
GO

--тестовая просида

CREATE PROCEDURE test___
AS
DECLARE
@d1 datetime,
@d2 datetime,
@d3 datetime

SET NOCOUNT ON
set @d1=getdate()
SELECT * INTO #t FROM t___
set @d2=getdate()

SELECT * FROM #t
set @d3=getdate()

print 'insert=' + RIGHT(CONVERT(varchar,@d2-@d1,8),5) + ', select=' + RIGHT(CONVERT(varchar,@d3-@d2,8),5) + ', total=' + RIGHT(CONVERT(varchar,@d3-@d1,8),5)
GO

--тест

EXEC test___

--подтираем за собой

DROP PROCEDURE test___
DROP TABLE t___
SET NOCOUNT OFF
sp_updatestats

Окончательный вар-т.
Разница между total и показаниями QA возможно тоже что-то значит, пока не понял что.
20 авг 02, 18:30    [47961]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
akuz
Member [скрыт] [заблокирован]

Откуда:
Сообщений: 6749
hi Moody

Есть результаты?
21 авг 02, 14:20    [48246]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
Oldman
Guest
Поскольку никто не отвечает, небольшой вопросик (хотя может и большой). Я прогнал вчера твой тест на всех серверах и на одном девелоперском получил интересный результат: селект идет в 4 раза дольше чем инсерт. На мой скромный взгляд это говорит о фрагментации диска. А о чем еще?
21 авг 02, 17:48    [48349]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
aZaZello
Guest
SQL2K SP2 на 2xPIII-800, 512MB, просто SCSI-винт какой-то приличный (точно, никаких массивов).

На "окончательном варианте" процедуры:
insert=00:03, select=00:24, total=00:27
21 авг 02, 17:54    [48353]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
Евгений Фадеев
Member [заблокирован]

Откуда: Russia, Moscow
Сообщений: 2374
Насколько я понимаю разница между total и показаниями QA это время, требуемое на вытягивание resultset'а на клиента. Поправьте, если ошибаюсь
21 авг 02, 19:36    [48399]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
Евгений Фадеев
Member [заблокирован]

Откуда: Russia, Moscow
Сообщений: 2374
Упс... Невнимательно скрипт смотрел. Разница между total и показаниями QA это время на заполнение первой таблички (которая, насколько я понимаю, в отличии от второй будет далеко не в tempdb), а значит показывает призводительность дисков на сервере (конечно косвенно, но все же)
21 авг 02, 21:04    [48408]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
Дед Маздай
Member

Откуда:
Сообщений: 655
Значит, когда я этим летом получил доступ к телу 32-процессорного Юнисиса, я, конечно, в том числе захотел проверить любимый всеми здесь тест на кол-во счастливых билетов. Копирайт SergSuper. Первоначально рез-ты оказались хуже, чем на моем убитом десктопе. Почему? П.ч. свыше 6 процов ему уже для этого до ламбады. Но даже на 6 он первоначально не захотел распараллеливать, т.к. там было штук 2000 конкурентных пользователей, и он все threadы отдал под обслуживание сессий. Табличка-то вшивенькая, 10 записей, а юзеров - до хренища. В итоге весь запрос он прогнал на одном CPU, который в Юнисисе был слабее, чем на десктопе. В памяти выиграть он тоже не мог, п.ч. все джойны заведомо укладываются в кэш, и здесь что 512М, что 64Г - монопенисуально. Поэтому вовсе не факт, что от перехода на крутую железку запрос обяз-но д. выиграть.
21 авг 02, 21:44    [48410]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
Moody
Member

Откуда:
Сообщений: 49
Всем привет!
Вот рез-ты теста akuz-а:
Новый: insert=00:02, select=03:23, total=03:25; запонение таблицы ~1 мин.
Старый: insert=01:29, select=03:12, total=04:41; запонение таблицы ~10 мин.

Также выполнил этот тест с некоторыми изменениями в процедуре:
SELECT count(*) FROM #t where name like '%056%'
рез-ты примерно следующие:
Новый: insert=00:02, select=01:47, total=01:49
Старый: insert=01:29, select=00:20, total=01:49
Далее, если в where ограничить выборку по ключу или написать like '056%', то новый летает - select= 00:00, а старый без изменений, ему что like '%056%', что like '056%' один фиг получается - 20 сек.???
22 авг 02, 10:01    [48464]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
Panov
Guest
Этот же тест у меня выполнился с ужасной скоростью:
2x Xeon-2400 2Гб

insert=04:11
select=01:00 (повторный select 10 сек)

?
18 авг 03, 18:30    [304769]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
Ustas
Member

Откуда:
Сообщений: 13
У меня total 12 мин.
Диски в RAID 5 ну очень старые... а проц 2xXEON 2,4 вот такой монстрик люди собрали :-\
22 авг 03, 09:11    [310807]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
Alexander O.
Guest
Обратите особое внимание на конфигурацию дисковой подсистемы, которая важнее чем процессоры и все остальное, т.к. дисковые операции в 1000 раз медленнее чем операции в памяти. Т.е. как правило узкое место в железе это скорость дисковой подсистемы.
Должно для MS SQL быть сделано по крайней мере 3 Windows диска - один для системы и инсталляции сервера, второй для файлов базы и третий для логов. Pagefile можно поместить на первом, но лучше на отдельном 4м. Каждый из этих дисков должен быть сделан как отдельный RAID и желательно на отдельном канале вашего SCSI - контроллера, в крайнем случае если у вас 2х канальный контроллер, можно посадить на один канал диск с базой, на 2й - систему и логи. Диск для логов лучше сделать без RAID (т.е. уровня 0) чтобы головки винта при записи логов шли последовательно.
Диски лучше иметь 15К а не 10К => скорость операций в 1.5 раза выше. Контроллер и диски могут поддерживать стандарт скорости передачи данных 80,160,320 мб/с => аналогично, скорость операций может от этого зависеть в 4 раза. Поэтому поставьте диски на 15К поддерживающие U320 и 2-4 канальный контроллер c U320, 128M кэш и выделите по крайней мере 2 канала.
22 авг 03, 10:47    [310998]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
Alexander O.
Guest
Дополнение. Если у вас все диски в RAID5, т.е. на одном RAID-5 логическом диске разбиты партиции и сделаны диски Windows, то это самое плохое что можно сделать для производительности.
На том же железе лучше разбить RAID5 на 3*RAID0 или 1*RAID0+2*RAID1 и разнести в Windows систему, базу и логи по 3м разным дискам.
Если есть 6 дисков, то лучше сделать 2*RAID1 (system) +3*RAID5 (db) + 1*RAID0 (logs), причем посадить db и logs на разные каналы контроллера.
22 авг 03, 10:57    [311024]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
Hibernate
Member

Откуда: Киев
Сообщений: 1670
2Alexander O.:
Если есть 6 дисков, то лучше сделать 2*RAID1 (system) +3*RAID5 (db) + 1*RAID0 (logs), причем посадить db и logs на разные каналы контроллера.

цыфр представить не могу, но с RAID5 менее чем на 5 дисках я бы связываться не стал - ну тормозной он на запись, я бы сделал просто:
2*RAID1 (system) +2*RAID1 (db) + 2*RAID1 (logs)
RAID0 - очень ненадежная штука, и при его падении теряем все, что произошло после последней чекпоинт.
22 авг 03, 11:58    [311221]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
Nataly
Member

Откуда: Томск
Сообщений: 32
Провели на своем сервере тест (2*Xeon2 по 2.2GHz, raid 2*0, 2*1)
резутьтат выдает следующий 98333 25296.
Это как же понимать, читаем вообще плохо?
22 авг 03, 12:24    [311278]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
zaki
Member

Откуда:
Сообщений: 69
вставлю свои три копейки
результат тестирования
2хPIII-800, 1 гиг мозгов, RAID0 (2 вита, старенькие кватум 20 гиг)
- 17500, 42640
2хP4-2г, 2 гиг мозгов, просто 2 IDE винта WD 800JB 8 м кеш, базы и лог разнесены
- 8830, 40873
22 авг 03, 12:31    [311307]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
zaki
Member

Откуда:
Сообщений: 69
по результатам последнего скрипта
2хPIII-800, 1 гиг мозгов, RAID0 (2 вита, старенькие кватум 20 гиг)
- insert=00:33, select=00:41, total=01:14

2хP4-2г, 2 гиг мозгов, просто 2 IDE винта WD 800JB 8 м кеш, базы и лог разнесены
- insert=00:06, select=00:43, total=00:49
22 авг 03, 12:40    [311337]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
lazy fox
Guest
На своем домашнем
Athlon XP 1800+@1700, 2x512M DDR @400, Barracuda не помню какая, win 2003 server 8)
insert=00:14, select=00:04, total=00:19
22 авг 03, 22:02    [312372]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
Copyright
Member

Откуда: Volgograd=>Moscow=>Volgograd
Сообщений: 1049
To Moody: Как всегда опоздал на обсуждение, но позволю всавить небольшое дополнение.

Как видно из приведенного обсуждения проблема именно в дисковой подсистеме, т.е решается она из опыта элементарно... Добавьте память на RAID. После этого производительность дисковой системы резко увеличивается.
1Gb памяти на RAID для СУБД - это просто песня.

P.S Возможно ваш RAID и не поддерживает столько, тогда ставьте сколько поддерживает ;-))
26 авг 03, 16:44    [315763]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
Crimean
Member

Откуда:
Сообщений: 13147
А тестик-то некорректный.
Чтение в QA тестит сетку и машину, на которой запущен QA (прием результата тоже кое-чего стоит!), но не сервер.
По раидам - ИМХО идеал под данные RAID5 (на, скажем, 7 дисках), под логи RAID10. Тогда будет и быстро читаться и быстро писаться. Все равно данные не пишутся сразу на диск в отличие от логов.
Про разбиение системы, данных и логов говорили со времен 6.5 сиквела, как про первом средстве при планировании системы.
Ну а дальше - разносить на разные устройства саму базу...

Ну и возвращаясь к топику - мне до сих пор непонятна природа оптимизатора МС и того, как он выбирает планы выполнения одного и того же запроса на одной и той же версии сервера на разном железе. ИМХО есть еще понятие "сбалансированность" железа. И если железо "несбалансировано", то оптимизатор переоценивает одну часть системы (типа проц, скажем) по отношению к другой (диск, скажем), а итог - запрос начинает жутко тормозить и мы ломаем голову почему.
26 авг 03, 21:04    [316167]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
_VL
Guest
Не подскажет ли кто, как оценить вопрос «горизонтальной» производительности решения при использовании сервера для различных типов задач (OLTP и OLAP), а также для независимых задач одного типа. Есть ли способ подстраховаться и зарезервировать ресурсы сервера так, чтобы избежать неравномерного распределения вычислительных ресурсов. В данном случае имеем несколько независимых задач расположенных на одной машине. Разносить задачи нельзя!!!
30 авг 03, 22:56    [321250]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
SergD
Member

Откуда: Киев
Сообщений: 23
результат тестирования
2x Xeon-450, 1 гиг мозгов, RAID5 (4вита по 6)
- 152063 126970
3 сен 03, 11:21    [324533]     Ответить | Цитировать Сообщить модератору
 Re: Проверка производительности SQL Server?  [new]
Copyright
Member

Откуда: Volgograd=>Moscow=>Volgograd
Сообщений: 1049
Вот результаты для теста Akuz для моего сервачка

2xPIII 1,4 ГГЦ\4x256 Dimm=1Гб\5x36Гб винты RAID5

INSERT=00:05; SELECT=00:08; TOTAL=00:13

ЗЫ Не пойму никак хорошо это или плохо ;-))???
16 сен 03, 10:52    [340137]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Проверка производительности SQL Server?  [new]
salexxx
Member

Откуда:
Сообщений: 548
Прет у меня такая же проблема вот попробовал
DECLARE @name varchar(2000), @i int
SET NOCOUNT ON
CREATE TABLE t___(
	id int IDENTITY PRIMARY KEY,
	name VARCHAR(2000)
)

SET @i = 0
WHILE @i < 100000
BEGIN
	INSERT t___ VALUES (REPLICATE('a',2000))
	SET @i = @i + 1
END

SELECT * FROM t___

DROP TABLE t___
SET NOCOUNT OFF
так уже мдёт более 22 минут но паралельно раб . народ .
11 сен 06, 17:32    [3120480]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить