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

Откуда: Moscow
Сообщений: 36800
anshag
Ozerov
А точнее ? page\sec 25-30 % ??? Там вообще не в процентах... да и все остальное не в процентах, можно среднии цифры, они внизу пишутся. Но что то, мне кажется (если правильно Вас понял) по памяти и дисковой подлсистеме, у Вас ужасть.


page\sec ~ 288 000
средняя длина очереди диска - 12,244
Простити. Но у вас очередь к диску в 6000 раз больше рекомендуемой.
4 авг 09, 14:50    [7496050]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
anshag
Ozerov
А точнее ? page\sec 25-30 % ??? Там вообще не в процентах... да и все остальное не в процентах, можно среднии цифры, они внизу пишутся. Но что то, мне кажется (если правильно Вас понял) по памяти и дисковой подлсистеме, у Вас ужасть.


page\sec ~ 288 000
средняя длина очереди диска - 12,244

У Вас большая нехватка памяти на лицо. да и очередь не маленькая!
4 авг 09, 14:51    [7496055]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
UV
Member

Откуда: EU
Сообщений: 36
select min (DocumentDate) from Documents with (index (IX_Documents_6))

ето тоже 3 мин?
4 авг 09, 14:51    [7496060]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
Смотрите, что диск нагружает Профайлером. Сколько у Вас физ памяти ?
4 авг 09, 14:52    [7496068]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
Glory
Member

Откуда:
Сообщений: 104760
У вашего сервера не разрешено awe и задана динамическая работа с памятью.
Так что совершенно непонятно, сколько вообще памяти досталось mssql-ю
4 авг 09, 14:55    [7496095]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
Гавриленко Сергей Алексеевич
anshag
Ozerov
А точнее ? page\sec 25-30 % ??? Там вообще не в процентах... да и все остальное не в процентах, можно среднии цифры, они внизу пишутся. Но что то, мне кажется (если правильно Вас понял) по памяти и дисковой подлсистеме, у Вас ужасть.


page\sec ~ 288 000
средняя длина очереди диска - 12,244
Простити. Но у вас очередь к диску в 6000 раз больше рекомендуемой.


Ммм, может я чего не понял, но рекомендованная не 2 ? Если до, то, тогда 12 на два диска получаем в 3 раза...
4 авг 09, 15:00    [7496138]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36800
Ozerov
Гавриленко Сергей Алексеевич
anshag
Ozerov
А точнее ? page\sec 25-30 % ??? Там вообще не в процентах... да и все остальное не в процентах, можно среднии цифры, они внизу пишутся. Но что то, мне кажется (если правильно Вас понял) по памяти и дисковой подлсистеме, у Вас ужасть.


page\sec ~ 288 000
средняя длина очереди диска - 12,244
Простити. Но у вас очередь к диску в 6000 раз больше рекомендуемой.


Ммм, может я чего не понял, но рекомендованная не 2 ? Если до, то, тогда 12 на два диска получаем в 3 раза...
А, там запятая. Черт.
4 авг 09, 15:08    [7496182]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
x-x
Member

Откуда:
Сообщений: 230
anshag

page\sec ~ 288 000
средняя длина очереди диска - 12,244

Диск загружен. Но Вы таки дайте не среднее значение, а текущую очередь в момент выполнения запроса.
И результат такого что даст?
SELECT TOP 100
  wait_type					as wait_type
, wait_time_ms/1000 		as wait_time_s
, max_wait_time_ms/1000 	as max_wait_time_s
, CONVERT(DECIMAL(12,2), wait_time_ms*100.0/SUM(wait_time_ms) OVER())
               				as [%]	
FROM sys.dm_os_wait_stats
ORDER BY wait_time_ms DESC;
4 авг 09, 15:14    [7496216]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
anshag
Member

Откуда:
Сообщений: 72
UV
select min (DocumentDate) from Documents with (index (IX_Documents_6))

ето тоже 3 мин?


Да, тоже 3 минуты.
4 авг 09, 15:19    [7496264]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
anshag
Member

Откуда:
Сообщений: 72
Ozerov
Смотрите, что диск нагружает Профайлером. Сколько у Вас физ памяти ?


Памяти 4 Гб.
4 авг 09, 15:19    [7496268]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
anshag
Member

Откуда:
Сообщений: 72
Гавриленко Сергей Алексеевич
Ozerov
Гавриленко Сергей Алексеевич
anshag
Ozerov
А точнее ? page\sec 25-30 % ??? Там вообще не в процентах... да и все остальное не в процентах, можно среднии цифры, они внизу пишутся. Но что то, мне кажется (если правильно Вас понял) по памяти и дисковой подлсистеме, у Вас ужасть.


page\sec ~ 288 000
средняя длина очереди диска - 12,244
Простити. Но у вас очередь к диску в 6000 раз больше рекомендуемой.


Ммм, может я чего не понял, но рекомендованная не 2 ? Если до, то, тогда 12 на два диска получаем в 3 раза...
А, там запятая. Черт.


Как же быть? Как же так? Я уже даже не знаю.
4 авг 09, 15:20    [7496279]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
anshag
UV
select min (DocumentDate) from Documents with (index (IX_Documents_6))

ето тоже 3 мин?


Да, тоже 3 минуты.

Открываем профайлер и смотрим на read write!
Кроме SQL сервера, надеюсь, у Вас больше ничего не жрет ресурсы ? Сколько физ памяти не ответили.
4 авг 09, 15:21    [7496284]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
а просто файл скопировать размером так 5мб?

и просто
select top 1 * from documents

еще такой
select * from documents where documentdate = 'мин.дата которая отбирается 10 секунд'

создать табличку еще одну и залить туда 100тыс. строк? по времени сколько?

провести тест памяти. может она шалит и долго фурычит?


для спящего время бодрствования равносильно сну
4 авг 09, 15:27    [7496313]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
anshag
Member

Откуда:
Сообщений: 72
x-x
anshag

page\sec ~ 288 000
средняя длина очереди диска - 12,244

Диск загружен. Но Вы таки дайте не среднее значение, а текущую очередь в момент выполнения запроса.
И результат такого что даст?
SELECT TOP 100
  wait_type					as wait_type
, wait_time_ms/1000 		as wait_time_s
, max_wait_time_ms/1000 	as max_wait_time_s
, CONVERT(DECIMAL(12,2), wait_time_ms*100.0/SUM(wait_time_ms) OVER())
               				as [%]	
FROM sys.dm_os_wait_stats
ORDER BY wait_time_ms DESC;


Среднее значение очереди в момент выполнения запроса - 9,381

wait_type	wait_time_s	max_wait_time_s	%
SQLTRACE_BUFFER_FLUSH	439253	4	44.29
LAZYWRITER_SLEEP	439084	1	44.28
OLEDB	95568	3556	9.64
CXPACKET	5489	147	0.55
SLEEP_BPOOL_FLUSH	2431	0	0.25
PAGEIOLATCH_SH	1528	3	0.15
SLEEP_TASK	1523	5	0.15
LCK_M_SCH_S	1446	195	0.15
WRITELOG	1144	3	0.12
IO_COMPLETION	875	2	0.09
LATCH_EX	662	2	0.07
LOGBUFFER	654	1	0.07
BACKUPBUFFER	581	0	0.06
ASYNC_IO_COMPLETION	565	138	0.06
LCK_M_S	262	110	0.03
LCK_M_X	140	62	0.01
ASYNC_NETWORK_IO	101	1	0.01
PAGEIOLATCH_UP	93	2	0.01
PAGEIOLATCH_EX	68	2	0.01
BACKUPIO	57	0	0.01
MSSEARCH	45	45	0.00
BACKUPTHREAD	45	4	0.00
BROKER_TASK_STOP	40	10	0.00
SOS_SCHEDULER_YIELD	33	1	0.00
PAGELATCH_UP	4	0	0.00
LATCH_SH	3	0	0.00
PAGELATCH_SH	2	0	0.00
LCK_M_SCH_M	2	2	0.00
MSQL_XP	2	0	0.00
LCK_M_U	1	0	0.00
SLEEP_SYSTEMTASK	0	0	0.00
CHKPT	0	0	0.00
EXECSYNC	0	0	0.00
SQLTRACE_LOCK	0	0	0.00
THREADPOOL	0	0	0.00
CMEMTHREAD	0	0	0.00
PAGELATCH_EX	0	0	0.00
FCB_REPLICA_READ	0	0	0.00
FCB_REPLICA_WRITE	0	0	0.00
DTC_STATE	0	0	0.00
QUERY_TRACEOUT	0	0	0.00
MSQL_SYNC_PIPE	0	0	0.00
SQLTRACE_SHUTDOWN	0	0	0.00
SQLTRACE_WAIT_ENTRIES	0	0	0.00
SQLSORT_NORMMUTEX	0	0	0.00
SQLSORT_SORTMUTEX	0	0	0.00
REPL_CACHE_ACCESS	0	0	0.00
REPL_SCHEMA_ACCESS	0	0	0.00
DEADLOCK_TASK_SEARCH	0	0	0.00
QNMANAGER_ACQUIRE	0	0	0.00
IMPPROV_IOWAIT	0	0	0.00
DISKIO_SUSPEND	0	0	0.00
DUMP_LOG_COORDINATOR	0	0	0.00
SOAP_WRITE	0	0	0.00
SOAP_READ	0	0	0.00
HTTP_ENUMERATION	0	0	0.00
CURSOR_ASYNC	0	0	0.00
DBMIRROR_SEND	0	0	0.00
DBMIRROR_DBM_EVENT	0	0	0.00
DBMIRROR_DBM_MUTEX	0	0	0.00
BACKUP	0	0	0.00
LOWFAIL_MEMMGR_QUEUE	0	0	0.00
SOS_CALLBACK_REMOVAL	0	0	0.00
SOS_LOCALALLOCATORLIST	0	0	0.00
SOS_RESERVEDMEMBLOCKLIST	0	0	0.00
SOS_VIRTUALMEMORY_LOW	0	0	0.00
WAIT_FOR_RESULTS	0	0	0.00
DBMIRRORING_CMD	0	0	0.00
BROKER_RECEIVE_WAITFOR	0	0	0.00
REPLICA_WRITES	0	0	0.00
DEBUG	0	0	0.00
ASYNC_DISKPOOL_LOCK	0	0	0.00
RESOURCE_QUEUE	0	0	0.00
FAILPOINT	0	0	0.00
DTC	0	0	0.00
RESOURCE_SEMAPHORE	0	0	0.00
TRAN_MARKLATCH_DT	0	0	0.00
TRAN_MARKLATCH_EX	0	0	0.00
TRAN_MARKLATCH_UP	0	0	0.00
TRAN_MARKLATCH_SH	0	0	0.00
TRAN_MARKLATCH_KP	0	0	0.00
TRAN_MARKLATCH_NL	0	0	0.00
PAGEIOLATCH_DT	0	0	0.00
PAGEIOLATCH_KP	0	0	0.00
PAGEIOLATCH_NL	0	0	0.00
PAGELATCH_DT	0	0	0.00
PAGELATCH_KP	0	0	0.00
PAGELATCH_NL	0	0	0.00
LATCH_DT	0	0	0.00
LATCH_UP	0	0	0.00
MISCELLANEOUS	0	0	0.00
LATCH_KP	0	0	0.00
LATCH_NL	0	0	0.00
LCK_M_RX_X	0	0	0.00
LCK_M_RX_U	0	0	0.00
LCK_M_RX_S	0	0	0.00
LCK_M_RIn_X	0	0	0.00
LCK_M_RIn_U	0	0	0.00
LCK_M_RIn_S	0	0	0.00
LCK_M_RIn_NL	0	0	0.00
4 авг 09, 15:27    [7496316]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
Кстати, нехватка памяти, может иметь как следствие, загруз своп файла, что начинает грузить диски!
4 авг 09, 15:28    [7496325]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
anshag
Member

Откуда:
Сообщений: 72
Ozerov
anshag
UV
select min (DocumentDate) from Documents with (index (IX_Documents_6))

ето тоже 3 мин?


Да, тоже 3 минуты.

Открываем профайлер и смотрим на read write!
Кроме SQL сервера, надеюсь, у Вас больше ничего не жрет ресурсы ? Сколько физ памяти не ответили.


Reads 84692
Writes 0
CPU 1968

Памяти 4 Гб.

Кроме SQL сервера больше ничего не стоит и не запущено.
4 авг 09, 15:30    [7496347]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
anshag
Member

Откуда:
Сообщений: 72
Алексей2003
а просто файл скопировать размером так 5мб?

и просто
select top 1 * from documents

еще такой
select * from documents where documentdate = 'мин.дата которая отбирается 10 секунд'

создать табличку еще одну и залить туда 100тыс. строк? по времени сколько?

провести тест памяти. может она шалит и долго фурычит?


для спящего время бодрствования равносильно сну


select top 1 * from documents
отрабатывает за доли секунды.

Создал табличку с 2 столбцами (id int, [name] nvarchar(10)) и заполнил в транзакции её 100 000 строк. Отработало за 2,5 с.
4 авг 09, 15:34    [7496382]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
anshag
Member

Откуда:
Сообщений: 72
Ozerov
Кстати, нехватка памяти, может иметь как следствие, загруз своп файла, что начинает грузить диски!


А может быть на сервере стоит просто медленная память? Так? Может быть можно оптимизировать тайминги памяти и немного разогнать процессоры?
4 авг 09, 15:36    [7496397]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
SELECT
(a.cntr_value * 1.0 / b.cntr_value)
* 100.0 [BufferCacheHitRatio]
FROM
(SELECT
*, 1 x FROM
sys.dm_os_performance_counters
WHERE counter_name = 'Buffer cache hit ratio'
AND object_name='SQLSERVER:Buffer Manager'
) a
JOIN
(SELECT
*, 1 x FROM
sys.dm_os_performance_counters
WHERE counter_name = 'Buffer cache hit ratio base'
and object_name ='SQLSERVER:Buffer Manager'
) b ON a.x = b.x ;

что выдает результат запроса ?
-------------------------------------
Jedem Das Seine
4 авг 09, 15:36    [7496399]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
x-x
Member

Откуда:
Сообщений: 230
Алексей2003

и просто
select top 1 * from documents
1. Кстати очень +1
2. Не входит ли столбец с датой в кластерный индекс? (пардон, если это было)
3. Покажите результат этого :
use [master]
go

create table test_xx
(_id int identity(1,1), 
 _date datetime)
go

declare @tt datetime
select @tt = getdate()

insert into test_xx(_date) 
select o.create_date 
from sys.objects o
cross join sys.objects o2

select @@ROWCOUNT
select datediff(ms,@tt,getdate())
go
drop table test_xx
go
4 авг 09, 15:36    [7496405]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
проверьте по другому индексу выборка идет с какой скоростью?

для спящего время бодрствования равносильно сну
4 авг 09, 15:37    [7496410]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
x-x
Member

Откуда:
Сообщений: 230
x-x

2. Не входит ли столбец с датой в кластерный индекс? (пардон, если это было)

Хотя это я из другой оперы, не надо
4 авг 09, 15:38    [7496417]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
anshag
Member

Откуда:
Сообщений: 72
Алексей2003
проверьте по другому индексу выборка идет с какой скоростью?

для спящего время бодрствования равносильно сну


Выборка по другому некластерному индексу идёт с такой же скоростью.
4 авг 09, 15:40    [7496433]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
anshag
Member

Откуда:
Сообщений: 72
x-x
x-x

2. Не входит ли столбец с датой в кластерный индекс? (пардон, если это было)

Хотя это я из другой оперы, не надо


А может быть сделать отдельную таблицу, куда запихать непосредственно 2 строчки - c максимальной датой и с минимальной? И потом из этой выделенной таблицы дёргать либо первую, либо вторую строчку. Так?
4 авг 09, 15:41    [7496439]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса к большой базы данных (>=8 Гб)  [new]
x-x
Member

Откуда:
Сообщений: 230
anshag
Алексей2003
проверьте по другому индексу выборка идет с какой скоростью?

Выборка по другому некластерному индексу идёт с такой же скоростью.

В смысле быстро или тоже 3 минуты?
Уважаемый anshag!
Приведите плиз скрипт на таблицу, и скрипты на индексы. Польностью, с указанием файлгруппы.
Какая то странная у Вас ситуация.
4 авг 09, 15:43    [7496452]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить