|
Неожиданная скорость в SQL | ☑ | ||
---|---|---|---|---|
0
MrStomak
02.04.12
✎
23:41
|
Как правило, в монопольном режиме файловая база работает быстрее, чем в клиент-серверном режиме на SQL.
Тест по проведению документов от Гилёва, например, это демонстрирует. Но тут внезапно обнаружилось странное. Есть один сложный отчет, в нём много разных запросов, вложенных запросов, имеются запросы в цикле и так далее. Размер базы 2Гб. В файловом режиме он выполняется 139 минут, в клиент-серверном(на той же машине) - 1 мин 40 сек. Тут можно, конечно, заметить, что в файловом режиме процесс быстро упирается в возможности одного ядра, в то время как агент сервера использует все 4 - но такую драматическую разницу этим не объяснить. Как такое может быть? MSSQL 2008 R2 |
|||
1
GROOVY
02.04.12
✎
23:42
|
Может это объясняется тем что запросы в клиент-серверном варианте исполняются SQL сервером, а в файловом тупо перебором таблиц БД?
|
|||
2
syktyk
02.04.12
✎
23:47
|
(1)Вообще-то в обоих вариантах тупо перебираются таблицы, только выглядит по разному
|
|||
3
zxcvb
02.04.12
✎
23:47
|
Уволил бы... Сколько лет уже работаю, но так и не понимаю необходимость запросов в цикле.
Это же вообще... И не по теории, и само по себе криво. Есть же средства, даже встроенные, списком вынуть например... |
|||
4
zxcvb
02.04.12
✎
23:48
|
(2) На винт не бросает.
|
|||
5
GROOVY
02.04.12
✎
23:49
|
(2) Ну как мы видим скуль это умнее делает :)
|
|||
6
Лефмихалыч
02.04.12
✎
23:50
|
(3) в крайне редких случаях бывает нужно. Например, если надо соединить две таблицы по иерархии, то варианта быстрее, чем построить временную таблицу с элементами, входящими в иерархию, запросами в цикле, нет. Но таких необходимостей лучше избегать
|
|||
7
Armando
02.04.12
✎
23:51
|
Пройдись отладчком по файловой базе. Выяви узкие места и думай.
А может там RLS или блокировки? Или железо разное? И вообще, что можно 2 часа в 2Гб базе делать? |
|||
8
МихаилМ
02.04.12
✎
23:51
|
сделайте замер производительности.
и поделитесь с нами результатом сравнения . |
|||
9
IamAlexy
02.04.12
✎
23:52
|
(0) бгыыыыыыыыы
ага.. берем ПРОСТОЙ типический отчет "анализ субконто" и внимательно курим как он формируется в файловой базе и в серверной... в фейловой базе - может и часами фигачится в серверной - секунды... у меня из за типовой БП три клиента перешли на серверную базу причем количество юзверей у них было 2-5 :) |
|||
10
Лефмихалыч
02.04.12
✎
23:52
|
(7) ждать взаимоблокировок?..
|
|||
11
syktyk
02.04.12
✎
23:53
|
Да, да! Профайлером надо.
|
|||
12
vde69
02.04.12
✎
23:53
|
если запрос в цикле - то SQL R2 оптимизирует план запроса и кеширует много чего...
сделай одним запросом разница будет в 2-3 раза |
|||
13
jsmith82
02.04.12
✎
23:54
|
согласен, файловая зло
|
|||
14
zxcvb
03.04.12
✎
00:00
|
(13) Зачем же разработал такую кривулину, "Разработчик 1С v8 "?
|
|||
15
zxcvb
03.04.12
✎
00:02
|
(6) Список сортирни.
? |
|||
16
jsmith82
03.04.12
✎
00:03
|
(14) какую???
|
|||
17
zxcvb
03.04.12
✎
00:07
|
(16) Такую. У тебя же в личке написанно, что ты разработчик 1С v8...
|
|||
18
jsmith82
03.04.12
✎
00:09
|
(17) ааа
не, меня на мисте все знают как лютого антагониста типовых |
|||
19
zxcvb
03.04.12
✎
00:10
|
(18) Понимаю. Бывает поленишься или задачу не поймешь, и такую херню напишешь, что потом даже как-то стыдно признаваться, что твоя работа.
|
|||
20
MrStomak
03.04.12
✎
00:11
|
(13) Разработал это не я, но в данном случае имеется модуль на 4900 строк и очень-очень сложная структура получения данных. Это явный признак неверной проектировки БД - но тут в один запрос переделать невероятно трудно. Один маленький кусок тут я переделывал под один запрос, так он содержал около 15 временных таблиц, но через добавление нескольких измерений в регистрах он сократился до приемлемого вида.
|
|||
21
jsmith82
03.04.12
✎
00:11
|
(19) я с гамном в завязке щас, пейшу системы
|
|||
22
jsmith82
03.04.12
✎
00:11
|
я кстати недавно видел в бухии 2.0 запрос с ключевым словом в иерархии
|
|||
23
zxcvb
03.04.12
✎
00:15
|
(21) ???? ????? Шалом тогда! Привет пейсателям.
|
|||
24
zxcvb
03.04.12
✎
00:16
|
+(23) Зараза... У Стаса сайт иврит не понимает. Эти поляки - такие антисемиты! Хуже украинцев...
|
|||
25
zxcvb
03.04.12
✎
00:17
|
А Ромикс еще и Холокост отрицает. Рассадник прямо, махровщины. Закроют ведь. Надо исправляться!
|
|||
26
Ardi
03.04.12
✎
01:30
|
Я несколько баз - там запросы в цикле.
Так кроме этого - в запросах ещё и условия в регистрах остатков с помощью "Где " накладываются. Так на SQL такой БыдлокодВКвадрате летает. А на файловой в 30 раз медленней. |
|||
27
Ardi
03.04.12
✎
01:30
|
+(26) Я несколько баз ВИДЕЛ
|
|||
28
Ardi
03.04.12
✎
01:44
|
Если "где" переписывал по нормальному, но цикл оставлял - на SQL прирост был копеечный.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |