|   |   | 
| 
 | Неожиданная скорость в 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 прирост был копеечный.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |