|
SQL. Первый раз запрос выполняется медленнее. Как избавиться? | ☑ | ||
---|---|---|---|---|
0
DirecTwiX
19.03.13
✎
22:55
|
Первый раз запрос вполняется раз в 100 дольше. Кеш отключил
|
|||
1
Живой Ископаемый
19.03.13
✎
23:02
|
от чего избавиться?
|
|||
2
H A D G E H O G s
19.03.13
✎
23:02
|
Кеш отключил.
Как? |
|||
3
be-may
19.03.13
✎
23:03
|
а кэш отключил чтобы и остальные разы тоже медленно выполнялись, да ?
|
|||
4
Cap_1977
19.03.13
✎
23:03
|
(0) Никак. Первый раз строиться план запроса и компилируется сам запрос. В хранимки его затолкай.
|
|||
5
Лефмихалыч
19.03.13
✎
23:11
|
(0) или иди читай матчасть, или вон из профессии. Ты влез в область, которую методом тыка уже не постичь, нужна теоретическая база, которой у тебя нет и которую на форуме ты не получишь
|
|||
6
wade25
19.03.13
✎
23:13
|
Кто где учился) http://v8.1c.ru/overview/Term_000000564.htm
|
|||
7
DirecTwiX
19.03.13
✎
23:14
|
(2) SET @@global.query_cache_size=0;
SET @@global.query_cache_type=OFF; (5) Из какой профессии? Я для себя всё делаю (3)Да. Для дебага нужно |
|||
8
wade25
19.03.13
✎
23:15
|
+(6) Темой не попал)
|
|||
9
Живой Ископаемый
19.03.13
✎
23:43
|
(7) и как убеждаешьс что он отключился?
|
|||
10
be-may
19.03.13
✎
23:44
|
(5) суров.
(7) в первый раз, как уже сказали, план выполнения строится. С этим не сделаешь ничего. Плюс данных еще нет в памяти. Обращение к диску (первый раз) всегда дольше, чем обращение к памяти (последующие разы) Вот думаю, чтобы делала я.. - посмотрела бы план выполнения, посмотрела бы как выполняется запрос - посмотрела бы сам запрос, возможно можно его оптимизировать - ну и сами данные. Обращение к индексированным полям позволяет побыстрее запросу выполняться. |
|||
11
IamAlexy
19.03.13
✎
23:52
|
(7) на курсах вещали что кеш платформенный, то есть его в принципе не отключить.
и на курсе по производительности платформы на этом специально заостряли внимание для того чтобы при замерах производительности не радоваться несуществующим результатам.. |
|||
12
Живой Ископаемый
20.03.13
✎
07:48
|
2(10) по его предположению в память (для последующих разов) данные не попадают так как он отключил кэш
|
|||
13
ЧеловекДуши
20.03.13
✎
08:12
|
(0) Если первый запрос строится долго, а второй быстро...
То вас кривые запросы, и ошибочное представление об отладке. Ибо во второй раз скуль данные уже выгребает почти в кэшированном виде :) |
|||
14
ЧеловекДуши
20.03.13
✎
08:12
|
(12) Какой кэш... он поди понятие не имеет как работает скуль :)
|
|||
15
ЧеловекДуши
20.03.13
✎
08:13
|
(10) Я бы в первую очередь посмотрел на сам запрос, ибо есть методы написания, которые будут и при втором разе выполнятся долго :)
|
|||
16
Живой Ископаемый
20.03.13
✎
08:35
|
2(14) откуда такая уничижительная предпосылка? например в (7) он показывает как отключал. Но не показывает как проверял что он действительно отключился.
2(13) что значит "почти" и опять же, он утверждает что отключил кэш |
|||
17
DGorgoN
20.03.13
✎
08:40
|
(10) Вау, молодец..
|
|||
18
Живой Ископаемый
20.03.13
✎
08:43
|
2(10) с чего вы взяли что ему нужно чтобы запрос выполнялся быстро? Ему нужно чтобы первый и последующий разы он выполнялся одинаковое время. (зачем ему это нужно, и почему он просто первый раз не исключит из опытов - это отдельный разговор)
|
|||
19
ЧеловекДуши
20.03.13
✎
08:55
|
(18) Вам не кажется, что требовать от программы, что бы она работала с одной и той же скоростью, как это делает 1С, (т.е. медленно), это не от большого ума?
Больше склонен к тому, что у автора есть некая обработка, которая запускается не зависимо от времени выполнения запроса к SQL, т.е. автор не умеет отлавливать процесс завершения работы запроса. А от этого и его требование, что бы все было тупо медлен, но с "предсказуемой" периодичностью. А вот тот факт, что запрос так же может выполнятся медленно в зависимости от самих данных, автор чего-то не упоминает. ...Или я просто сегодня груб?... (я не хотел)... |
|||
20
ДенисЧ
20.03.13
✎
08:58
|
чтобы гарантированно убедиться, что кеш не влияет на скорость запроса, нужно после каждого выполнения оного запроса перезапускать комп с сервером скуля.
Хотя и то не факт... |
|||
21
Живой Ископаемый
20.03.13
✎
09:03
|
2(19) мне кажется что вы не груб, а просто не можете себе представить, что человек не пишет программу которая бы должна работать, а например тестирует что-то. То есть вы навоображали каких-то предпосылок, насколько хватило вашей фантазии, и теперь пытаетесь на них ответить.
Но это правда все равно упущение автора, он в конце концов мог появиться и сказать чего же на самом деле хочет |
|||
22
упс
20.03.13
✎
09:08
|
(0) с mysql почти не работал, посмотри вот эту ссылку: http://www.stableit.ru/2010/02/querycache-mysql.html там есть пример - как посмотреть реальное значение query cache size.
В принципе, даже если кэш установлен в 0, может быть у тебя дисковая подсистема умная и сама какую-то часть данных кэширует. |
|||
23
MrStomak
20.03.13
✎
09:21
|
(19) Вижу человека, не проводившего долгие часы-дни в отладке производительности запроса на нефайловой базе.
|
|||
24
Sorm
20.03.13
✎
09:25
|
(0) Посмотри, нельзя ли запрос разбить на более мелкие подзапросы, поместить результаты во временные таблицы, проиндексировать.
|
|||
25
be-may
20.03.13
✎
09:55
|
(18) мне так показалось, т.к. это наиболее логично.
(20) мне кажется, достаточно будет сделать стоп-старт службе скл сервера. |
|||
26
упс
20.03.13
✎
10:01
|
(20)(25) для MS SQL Server гораздо проще и быстрее выполнить DBCC DROPCLEANBUFFERS.
|
|||
27
Живой Ископаемый
20.03.13
✎
14:00
|
2(25) Если читать предыдущие ветки автора, можно понять что а) не логично.
б) вообще не имеет отношения к 1Совской базе 2(22) Если это не МС СКЛ, но в Вин-среде, то безусловно файловая система умная, и помещает первый раз считанные файлы в системный кэш, это только МС СКЛ в Вин-среде читает низкоуровнево, мимо системного кэша, в свой собственный. |
|||
28
ДенисЧ
20.03.13
✎
14:03
|
(25) нет.
(26) нет. Есть ещё кеши контроллера диска. |
|||
29
be-may
20.03.13
✎
14:57
|
(27) у меня нет столько времени, чтобы читать все ветки автора. Да и желания нет.
"Правильно поставленное техническое задание является половиной решения" (с) |
|||
30
sapphire
20.03.13
✎
15:03
|
хм...ТС.. Мехмат МГУ...
Грустно. |
|||
31
Живой Ископаемый
20.03.13
✎
15:35
|
2(29) понятно, читать времени нет, безосновательно фантазировать на тему что же имел автор - есть.
|
|||
32
be-may
20.03.13
✎
16:02
|
(31) госпадя..
да автору уже и дела нет до этой темы, а вы тут все бубубу. |
|||
33
sapphire
20.03.13
✎
16:06
|
(32) Почему бы и не поворчать?
|
|||
34
AHgpuXa
20.03.13
✎
17:02
|
(0) мможет так?
declare @p1 int set @p1=null exec sp_prepare @p1 OUTPUT, NULL, N'SELECT * FROM table1 ' exec sp_execute @p1 exec sp_execute @p1 exec sp_execute @p1 |
|||
35
DirecTwiX
21.03.13
✎
01:30
|
(30) Что именно тут грустного?
Винда может так данные кешировать? |
|||
36
Живой Ископаемый
21.03.13
✎
08:00
|
2(35) не может, а точно это делает, читай (27)
|
|||
37
Skom
21.03.13
✎
08:35
|
(26) так жестче))
alter system flush shared_pool alter system flush buffer_cache |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |