Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » InterBase и FireBird: вопросы по работе и их решение

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Открыть новую тему     Написать ответ в эту тему

russko



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Надо тогда полный текст процедуры. Дьявол ведь - он в деталях.
 
Если полный текст - коммерческая тайна, тогда максимально точное описание того, что она делает.  

 
Прикладываю скрипт процедуры...тайны особой, кроме интеллектуальной нет ))
Процедура
 
Проблема очевидно кроется во втором подзапросе. Без него все выполняется в считанные минуты.
Подзапрос
 
Добавлено:

Цитата:
Правда, отличие есть: russko отвечает на вопросы и пытается разобраться в своей проблеме

 
Я бы может и забил на это...но кол-во записей, выводимых данной процедурой, растет ежедневно на 100-200 и следовательно времени на обработку тратиться все больше и больше. Скоро можно придти к ситуации, когда и ночи не хватит на выполнение и пополнение (

Всего записей: 176 | Зарегистр. 20-07-2005 | Отправлено: 10:47 28-11-2014 | Исправлено: russko, 10:55 28-11-2014
exteris

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Проблема очевидно кроется во втором подзапросе.

Ну так и продолжайте выцеплять, что в это подзапросе тормозит.  
Лично меня смущают множественные подселекты, типа - ,(select RESULT_SUMMA from NPC_SCHETA_OPL_NEOPL(NSz.ID,1,2,null,NSz.summa_v_valute_sch)) OPLACHENO_PROCENTOV

Всего записей: 382 | Зарегистр. 14-04-2003 | Отправлено: 11:09 28-11-2014
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
russko

Цитата:
Проблема очевидно кроется во втором подзапросе. Без него все выполняется в считанные минуты.

Тогда выполните только этот подзапрос, выполните его и покажите его план выполнения и статистику (все что выводит ИБексперт после выполнения запроса в нижней части экрана).

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 11:22 28-11-2014
russko



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо всем за участие...навели на путь истинный )
Причина всех тормозов получается в двух таблицах, в которых программист напихал кучу вычисляемых полей..даже простой фэтч по любой из этих таблиц происходит крайне долго.
 
Теперь буду искать где эти поля используются и как от них отказаться...если конечно получится (

Всего записей: 176 | Зарегистр. 20-07-2005 | Отправлено: 11:56 28-11-2014
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну это надо очень постараться, чтобы вычисляемыми полями затормозить простую выборку. Дело ваше, но я бы таки посмотрел на DDL этой таблицы, а также на статистику и план обсуждаемого запроса. Возможно, еще пара путей найдется. Всегда лучше больше путей, чем меньше

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 13:34 28-11-2014
chAlx

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

miwa:

Цитата:
Вижу полностью некомпетентного человека, который пытается администрировать базу данных на несколько сотен одновременных подключений.

А все люди в чём-то некомпетентны. (Sic: 300 не одновременных подключений, а всего клиентов.) Есть такие, кто тупит и разбираться не хочет, а есть просто неопытные. На том форуме принято заранее считать всех тупыми: мол, не смог решить квесты и продраться через строй насмешников -- не очень-то и хотел. Это не всем подходит и едва ли может считаться нормой.
 
Наводящие вопросы должны помогать разобраться, а не иллюстрировать, какой автор недоумок, раз не знает про тонкости реализации разных версий сервера, которые знают все 10 местных завсегдатаев (половина, по-совместительству, пишет код сервера или статьи про него). Если намёк, понятный своим, непонятен адресату -- скорее всего, он неправильно сформулирован. А точнее, он вообще написан, чтобы между собой поржать над тупицей, а не чтобы помочь.
 

Цитата:
Отдельно один учасник форума пытается троллить другого (не ТС-а). Плюс не забываем контекст - ТС уже один раз успел всем поднадоесть другим топиком

А не надо троллить, переходить на личности, учитывать контекст не относящихся к теме топиков, учить жить. Для этого есть другие разделы.
 

Цитата:
Мы тоже задаем ему вопросы, пытаемся гадать на хрустальном шаре.  

 
Ответ в стиле sql.ru:
  • Ставлю на FetchAll  = ~ 2 часа
    Это вообще не ответ на вопрос, это как бы обращение к окружающим ("своим"). Да, прошаренному пользователю оно может помочь, но если не помогло -- это не значит, что он лишается права на помощь. И так понятно, что самые прошаренные таких вопросов не задают.
    Хотя в единичном намёке нет ничего плохого, если после него не разворачивается троллинг про то, "как можно не допереть до тривиальных вещей, когда уже тыкнули носом". Здесь вот последовали уточнения и решение проблемы, на sql.ru скорее всего никто бы не удосужился "разжевать очевидную истину". Наводку не осилил -- лох. А вот это надо тут же обсудить -- на фоне нубов легко казаться асом.
     
    Сравни с нормальными ответами:
  • попробуйте перед запуском процедуры это всё отключать а после - включать  
  • Вы говорили про select * from ... А вас спросили за select count(*) from ...
    Это -- конкретные действия, которые можно реально выполнить и продвинуться в решении. Не все попадают пальцем в небо, но и в личность ТСа вообще не тыкают. А на флуд на РуБорде модераторы реагируют чётко, а не "пусть тешатся, они же ветераны".
     
     
    Просто надо понимать, что IT -- тема реально сложная. Да, очень интересно общаться с профессионалами, узнавать от них что-то новое. Но объективная реальность такова, что профессионалы далеко не все.  Если не хочешь с такими общаться -- сиди и помалкивай, никто не тянет. Если полез отвечать -- сделай так, чтобы помочь автору решить заданный вопрос, а не осознать свою ничтожность. В конце-концов, такие площадки в сети создаются в первую очередь для взаимопомощи (и извлечения прибыли из уникального трафика), а потом уж для пустого трёпа завсегдатаев.
     
    В IT постоянно встречаются системы с сотнями переменных факторов. Даже опытному специалисту непросто сформулировать вопрос и перечислить все нужные для ответа условия, не вытаскивая простыню лишних. Да и мало кто станет решать (да и ставить) задачи типа "вот дамп моей виртуалки, что-то тормозит" -- всем подавай локализованную проблему. Поэтому абсолютное большинство пользователей поначалу задаёт вопросы некорректно: очевидно, что раз вопрос возник, то автор не настолько разбирается в теме, чтобы угадать все параметры сразу. И это нормально.

  • Всего записей: 1691 | Зарегистр. 19-03-2003 | Отправлено: 16:54 28-11-2014 | Исправлено: chAlx, 16:57 28-11-2014
    ant0ni02004

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    russko
    вряд ли дело в вычисляемых полях (если мы об одном и том же говорим)
    скорее дело в большом кол-ве подзапросов из второго запроса, типа вот таких (я уже не говорю о простых типа SUM())
     
         ,(select RESULT_SUMMA from NPC_SCHETA_OPL_NEOPL(NSz.ID,1,2,null,NSz.summa_v_valute_sch)) OPLACHENO_PROCENTOV  
     
            ,(select min(Data_Opl) from NPC_Scheta_Oplata nso where nso.Schet_ID=nspz.Schet_ID ) DATA_OPL_FIRST  
     
            ,(select case when max(Data_Opl)<>min(Data_Opl) then max(Data_Opl) end from NPC_Scheta_Oplata nso where nso.schet_ID=nspz.Schet_ID ) DATA_OPL_LAST  
     
    попробуйте их по одному "выключать" (напр. ,0.000 OPLACHENO_PROCENTOV ) и увидите, что же реально тормозит. а потом будет видно как ускорить - или индекс добавить, или получать в цикле, или даже хранить результаты в таблице
     

    Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 19:40 28-11-2014
    xpin2013



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    miwa

    Цитата:
    Спасибо. Если что, я знаю и ваш предыдущий ник и помню вас на скуле. Поэтому пользуясь случаем хочу сказать, что на вас иногда находит довольно серьезное косноязычие и понять написанное решительно невозможно. Не знаю, могло ли это быть причиной бана, но это точно было причиной одного обмена публичными сообщениями "на грани фола" между нами здесь, на руборде.

    Скорее всего Вы не правы. На sql.ru кто-то начал светить мои личные данные и тролить по этому поводу. Я был выпивший и не зная что так принято высказался грубо. К личным данным я отношусь следующим образом. В 1993 году я решил что я больше не хаккер. В 1994 написал свой архиватор. После этого я взломал всего 2 программы. Одна из них моя собственная, я потерял исходники, а они были зашифрованы в этой программе. На ru-board отказались её ломать - объяснили "грязные технологии". Все формы программы были зашифрованы. Но в моей программе был JCL дебаг для лога экзепшена. Я написал программу которая вытаскивает этот лог и нашёл функцию IsFebruary4. Тут то я её и хакнул, но защита действительно сложная. Я не хаккер. Личные данные я уважаю. И я считаю что айтишник который взламывает программы, пишет собственные архиваторы, пишет собственные TDataset (на что Вы и обиделись), такой человек не является нубом. И никакой завсегдатай sql.ru не выше его. Напишите в ветку Ассемблер, что Вы все нубы и не знаете sql. Полагаю их ответы смогут Вас просветить, кто действительно нуб в просторах интернета. Не обижайтесь, я Вас действительно уважаю - иногда Вы можете чудом натолкнуть на идею.
     
    chAlx
    Предлагаю прикрыть про sql.ru, они не стоят.
     
    Добавлено:
    miwa
    Да кстати новости, хотел поделиться. Я Вам предложил соавторство, так как Вы натолкнули на идею, но помнится Вы отказались. Так вот, в моём датасете теперь есть ForeigKeys. Но пока я не решил - индексы отдельно. ForeignField должна иметь уникальный иднекс, а FieldName тоже должна иметь индекс, на случай CASCADE или SET NULL. Ключи пока создаются только в оболочке DElphi, но vdbXplor их подхватывает. Плюс и я смог перейти на EhLib XE6. Так что мой простенький клиентдатасет всё ещё поживает. Всегда велком.

    Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 15:07 29-11-2014
    noisy

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    форумчане, вышла бета версия Firebird 3.
     
    багрепорты приветствуються. просьба прогнать на своих проектах.  
     
    Добавлено:
    не забываем что FB3 не допускает смешивать явный и неявный джоин
    т.е. запрос:
     Select * from table1, table2 inner join table3 on (table2.id = table3.id)
     
    не сработает на FB3
     

    Всего записей: 987 | Зарегистр. 30-05-2002 | Отправлено: 19:36 01-12-2014
    xpin2013



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    noisy
    Я почитал, что там наворочено. Этого за 10 лет не выучить - вот уж постарались. Особенно мне понравился update returning old.value new.value.
     
    Про триггер выяснилось случайно недавно, что у моего коллеги хранимая процедура когда ей дают в параметре null, она шарашит всю таблицу. Old.id в insert триггере null. Так что это не FireBird такой, это как обычно мы чуток кривоватые. Простите.

    Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 19:38 03-12-2014
    noisy

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вышло обновление Firebird версии 2.1 и 2.5.

    Всего записей: 987 | Зарегистр. 30-05-2002 | Отправлено: 14:40 10-12-2014
    xpin2013



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    noisy
    - Ты сегодня разговаривал с Гуглом?
    - Ну да.
    - И что он тебе рассказал?
    - Да как всегда, "Страница не найдена".
     
    Я думаю это дети. Это они странички выдирают.

    Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 23:02 26-12-2014
    SuPriTo



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите компонент Delphi для работы с Firebird embedded, который можно использовать в windows service? Без всяких оконных компанент.

    Всего записей: 1482 | Зарегистр. 24-03-2009 | Отправлено: 15:25 12-01-2015
    Chukotka

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Подскажите компонент Delphi для работы с Firebird embedded
    Работа с embedded ничем не отличается от desktop - так что хоть стандартные IBX, хоть FIbPlus или IbDac какой-нить

    Всего записей: 428 | Зарегистр. 01-11-2006 | Отправлено: 17:26 12-01-2015
    SuPriTo



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Chukotka

    Цитата:
    Работа с embedded ничем не отличается от desktop - так что хоть стандартные IBX, хоть FIbPlus или IbDac какой-нить  

    Я знаю, что работа с embedded ничем не отличается. Можно эти компаненты использовать в службах windows или есть ограничения?

    Всего записей: 1482 | Зарегистр. 24-03-2009 | Отправлено: 17:31 12-01-2015 | Исправлено: SuPriTo, 17:32 12-01-2015
    ant0ni02004

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SuPriTo
    а вы уверены что сам сервис Окажется "Без всяких оконных компанент"?
    там же (SvcMgr.pas) ссылки на Forms...

    Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 21:14 12-01-2015
    xpin2013



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ant0ni02004

    Цитата:
    там же (SvcMgr.pas) ссылки на Forms...

    Да им там нужно переопределить компонент TApplication. Даже если будут формы, но TService.Interactie = false, то ни одно окно не появится.

    Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 21:52 12-01-2015
    Shaman2

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Даже если будут формы, но TService.Interactie = false, то ни одно окно не появится.

     
    чтобы не открывать вопрос в отдельной ветке, может подскажите способ взаимодействия с безоконным сервисом? Я о управлении и командовании ним из основного приложения. Встал вопрос получения данных из него, так как в windows 2008 окна сервиса невидно

    Всего записей: 358 | Зарегистр. 18-07-2003 | Отправлено: 22:02 12-01-2015
    xpin2013



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Shaman2

    Цитата:
    так как в windows 2008 окна сервиса невидно

    В любой виндовс не видно. Оконные хендлы сервиса - это одно пространство, оконные хендлы сессии юзера - другое пространство. Это же касается Мьютексов и многих других хендлов. Приемлемый для меня способ TCP/IP порт.

    Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 22:22 12-01-2015
    SuPriTo



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    чтобы не открывать вопрос в отдельной ветке, может подскажите способ взаимодействия с безоконным сервисом?  

    Pipes, FileMapping, TCP/IP. Сейчас пишу библиотеку для обмена сообщениями на базе FileMapping.
    _http://msdn.microsoft.com/en-us/library/windows/desktop/aa366537%28v=vs.85%29.aspx

    Всего записей: 1482 | Зарегистр. 24-03-2009 | Отправлено: 23:40 12-01-2015
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » InterBase и FireBird: вопросы по работе и их решение


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru