Как я могу переместить значение по умолчанию четыре системы, которые делит DB в другого?

Я говорил о той теме на днях с нашим администратором, и он сказал, что VMware раньше имел проблемы производительности с db2 (Базы данных обычно идут немного глубже в уровень OS, чем другое программное обеспечение в отношениях с записью на жестких дисках для достижения лучшей персистентности). Я думаю, что он упомянул, что алгоритм оптимизации испытал затруднения из-за пути db2, получают доступ к дискам.

Однако он знал, что VMware поддерживает db2 теперь и решенный для ожидания с виртуализацией db2 серверов, пока первые приемные родители не устранили большинство проблем.

2
задан 16 April 2011 в 16:13
3 ответа

Вы не можете использовать присоединение/отсоединение на системных базах данных, а скорее Вы используете, изменяют операторы базы данных вместе с изменением параметров запуска, указывающих на новое местоположение.

Вот руководство от MS о том, как переместить системные базы данных:

http://msdn.microsoft.com/en-us/library/ms345408.aspx

1
ответ дан 3 December 2019 в 11:05

Маловероятно, что местоположение системных баз данных вызывает или вызовет проблемы производительности.

Необходимо ответить на 2 вопроса прежде, чем выполнить эту задачу:

  1. Существует ли проблема производительности?

  2. Является местоположение системных баз данных причиной упомянутой проблемы производительности?

Если Вы не можете ответить на да на оба вопроса затем, мое предложение состоит в том, чтобы оставить вещи как они.

1
ответ дан 3 December 2019 в 11:05

К дополнению уже отвечают вышеупомянутые 2, единственная база данных, которую Вы должны быть заинтересованы, является tempdb. Ниже запроса получит сумму IO, для каждой базы данных, и это - хороший индикатор, если tempdb делает больше работы по сравнению с другими. Если Да, перемещаясь tempdb для разделения шпинделей поможет. Необходимо также проверить, есть ли у Вас узкое место выделения в использовании tempdb, ОЖИДАЮТ СТАТИСТИКА (запрос ниже) и используют TF 1118 и несколько tempdb файлов данных по мере необходимости. Таким образом, Вы могли бы получить хорошие ответы, если Вы добавляете больше деталей. Можно настроить первый запрос немного для рассмотрения статистики IO на уровень файла также для получения большего количества гранулярности.

--Per database write cost with running total
With g as
(select db_name(mf.database_id) as database_name, mf.physical_name, 
left(mf.physical_name, 1) as drive_letter, 
vfs.num_of_writes, 
vfs.num_of_bytes_written as BYTESWRITTEN, 
vfs.io_stall_write_ms, 
mf.type_desc, vfs.num_of_reads, vfs.num_of_bytes_read, vfs.io_stall_read_ms,
vfs.io_stall, vfs.size_on_disk_bytes
from sys.master_files mf
join sys.dm_io_virtual_file_stats(NULL, NULL) vfs
on mf.database_id=vfs.database_id and mf.file_id=vfs.file_id
)
select 
    database_name
    , sum(BYTESWRITTEN) as BYTES_WRITTEN
    , Percentage = RTRIM(CONVERT(DECIMAL(5,3),sum(BYTESWRITTEN)*100.0/(SELECT SUM(BYTESWRITTEN) FROM g)))+'%'
from g 
group by database_name
order by BYTES_WRITTEN desc

-- Isolate top waits for server instance since last restart or statistics clear
WITH Waits AS
(SELECT wait_type, wait_time_ms / 1000. AS wait_time_s,
    100. * wait_time_ms / SUM(wait_time_ms) OVER() AS pct,
    ROW_NUMBER() OVER(ORDER BY wait_time_ms DESC) AS rn
 FROM sys.dm_os_wait_stats
 WHERE wait_type NOT IN( 'BROKER_TASK_STOP', 'BROKER_TRANSMITTER',
  'SQLTRACE_BUFFER_FLUSH', 'CLR_AUTO_EVENT', 'CLR_MANUAL_EVENT', 'BROKER_EVENTHANDLER',
    'REQUEST_FOR_DEADLOCK_SEARCH', 'XE_TIMER_EVENT',
  'LAZYWRITER_SLEEP', 'SQLTRACE_WAIT_ENTRIES')) -- filter out additional irrelevant waits
SELECT W1.wait_type, 
  CAST(W1.wait_time_s AS DECIMAL(12, 2)) AS wait_time_s,
  CAST(W1.pct AS DECIMAL(12, 2)) AS pct,
  CAST(SUM(W2.pct) AS DECIMAL(12, 2)) AS running_pct
FROM Waits AS W1
INNER JOIN Waits AS W2
ON W2.rn <= W1.rn
GROUP BY W1.rn, W1.wait_type, W1.wait_time_s, W1.pct
HAVING SUM(W2.pct) - W1.pct < 95; -- percentage threshold
1
ответ дан 3 December 2019 в 11:05

Теги

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