Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: виснет мускул при выполнении хранимой процедуры
 
 автор: dagmor   (27.12.2006 в 11:31)   письмо автору
 
 

Приложил базу к теме.

Посмотрите, пожалуйста, почему может виснуть мускул и как сделать, чтобы все работало корректно?

   
 
 автор: cheops   (27.12.2006 в 11:55)   письмо автору
 
   для: dagmor   (27.12.2006 в 11:31)
 

Где выполняете запрос? Консольный клиент mysql.exe у меня выполнил этот SQL-дамп на ура.

   
 
 автор: dagmor   (27.12.2006 в 12:02)   письмо автору
 
   для: cheops   (27.12.2006 в 11:55)
 

этот дамп представляет собой урезанную копию базы... когда я пытаюсь вызвать хранимую процедуру CALL form(); у меня все виснет

   
 
 автор: dagmor   (27.12.2006 в 12:03)   письмо автору
 
   для: cheops   (27.12.2006 в 11:55)
 

что-то неправильно в хранимой процедуре

   
 
 автор: cheops   (27.12.2006 в 13:19)   письмо автору
 
   для: dagmor   (27.12.2006 в 12:03)
 

У вас в конструкции FROM используются объявления вида
workstations        ws,

В MySQL для назначения псевдонима используется ключевое слово AS - это хранимая процедура откуда?

   
 
 автор: dagmor   (27.12.2006 в 13:36)   письмо автору
 
   для: cheops   (27.12.2006 в 13:19)
 

в пятом мускуле можно делать псевдоним без AS, насколько я знаю... а хранимая процедура написана мной с помощью ответов в топике http://softtime.ru/forum/read.php?id_forum=3&id_theme=29382&page=3

   
 
 автор: dagmor   (28.12.2006 в 08:15)   письмо автору
 
   для: cheops   (27.12.2006 в 13:19)
 

есть какие-нибудь мысли еще?

помогите, пожалуйста, справиться с проблемой, перепробовал все что знаю!

стоит работа из-за этой штуки, а новый год хочется встретить без долгов (:

   
 
 автор: cheops   (28.12.2006 в 13:50)   письмо автору
 
   для: dagmor   (28.12.2006 в 08:15)
 

А вы каким клиентом выполняете этот дамп?

   
 
 автор: dagmor   (28.12.2006 в 14:33)   письмо автору
 
   для: cheops   (28.12.2006 в 13:50)
 

и через mysql query browser и через mysql command line client

разницы в клиенте нет, тут ошибка в запросе выборки из нескольких таблиц

   
 
 автор: dagmor   (09.01.2007 в 10:01)   письмо автору
 
   для: cheops   (28.12.2006 в 13:50)
 

проблема, не решена... плз помогите!

   
 
 автор: cheops   (09.01.2007 в 12:58)   письмо автору
 
   для: dagmor   (09.01.2007 в 10:01)
 

У вас какая версия MySQL? У меня ваш дамп на ура отрабатывает...

   
 
 автор: dagmor   (09.01.2007 в 13:16)   письмо автору
 
   для: cheops   (09.01.2007 в 12:58)
 

дамп загружается нормально, не работает хранимая процедура при вызове


call form();

   
 
 автор: jbs   (09.01.2007 в 14:49)   письмо автору
 
   для: dagmor   (27.12.2006 в 11:31)
 

я сам чуть независ, пока искал хоть один пример гдебы в поле FROM объявляли алисы,
причём уже используюя их ранее в SELECT

   
 
 автор: Trianon   (09.01.2007 в 14:53)   письмо автору
 
   для: jbs   (09.01.2007 в 14:49)
 

Обычная практика.

   
 
 автор: dagmor   (09.01.2007 в 15:27)   письмо автору
 
   для: Trianon   (09.01.2007 в 14:53)
 

это нормальный синтаксис пятого мускула

проблема в логике запроса

   
 
 автор: jbs   (09.01.2007 в 15:48)   письмо автору
 
   для: dagmor   (09.01.2007 в 15:27)
 

>проблема в логике запроса
тогда выдал-бы ошибку а не завис.

кстати, единственный раз когда у меня mysql завиc(а не выдал ошибку) при запросе:
я создал базу ручками и по умолчанию движок стал какраз InnoDB
база заполнялась(из CVS) намного дольше обычного а при запросе mysql воще завис.

потом поправил на MYISAM(или как его там?) и... ура!.

   
 
 автор: dagmor   (09.01.2007 в 15:57)   письмо автору
 
   для: jbs   (09.01.2007 в 15:48)
 

когда в таблицах tasks, hardware, software по одной записи ничего не виснет, как только появляется несколько записей, БД при выполнении процедуры надолго задумывается, а через пол-часа выдает одну строку данных (если смотреть через mysql query browser) и кучу ненужных данных (если через консоль)

   
 
 автор: jbs   (09.01.2007 в 16:18)   письмо автору
 
   для: dagmor   (09.01.2007 в 15:57)
 

и всётаки рекомендую поправить, InnoDB слишком тормозит (по крайней мере при больших объёмах)

ENGINE=InnoDB
на
ENGINE=MyISAM

   
 
 автор: dagmor   (09.01.2007 в 16:39)   письмо автору
 
   для: jbs   (09.01.2007 в 16:18)
 

вы бы проверили, а потом советовали... я еше раз говорю, что проблема в логике запроса

   
 
 автор: jbs   (10.01.2007 в 00:23)   письмо автору
 
   для: dagmor   (09.01.2007 в 16:39)
 

.. я могу незнать, но хочу знать.. на то он и форум ;)

хоть убей немогу понять, зачем вы пытаетесь селектить аж 15 раз одну и туже запись одной и тойже таблицы? и почему именно 15 раз поле hardware, 11 раз software и 5 раз task.?

тоесть:
так-как алисы с hrdw0 по hrdw14 = __hardware_list

то ваш запрос выглядит ~ так:

SELECT .... , `__hardware_list`.`hardware`,`__hardware_list`.`hardware` итд 15 раз

   
 
 автор: dagmor   (10.01.2007 в 03:39)   письмо автору
 
   для: jbs   (10.01.2007 в 00:23)
 

это тройное отношение таблиц

таблица workstation ссылается на таблицы hardware, software, tasks по первичному ключу этих таблиц, в этих таблицах храняться списки конфигурации железа, софта и задачи которые выполняет рабочая станция, а эти таблицы в свою очередь ссылаются на классификаторы hardware_list, software_list, tasks_list где непосредственно написано что за железо, что за софт и что за задача...

это сделано для того чтобы не повторяться по 100 раз с конфигурациями железа софта и задачами
более подробнее это описано в ссылке выше.

   
 
 автор: jbs   (10.01.2007 в 04:11)   письмо автору
 
   для: dagmor   (10.01.2007 в 03:39)
 

жаль несмогу толком помоч, почти понял что ты хочеш но как реализовать тоже незнаю.

да кстати, весло ловит при выборке по условию.
упрости WEARE до:


(`ws`.`hardware`      = `hrdw`.`id`)
    AND (`ws`.`software`      = `sft`.`id`)
    AND (`ws`.`tasks`         = `tsks`.`id`)


... и поймёш что с SELECT также проблемы, те самые 15 hardware :)

удачи!

   
 
 автор: dagmor   (10.01.2007 в 09:43)   письмо автору
 
   для: jbs   (10.01.2007 в 04:11)
 

спасибо за пожелание (: !


когда в tasks, hardware, software по одной записи и worкstation ссылается на только на эти записи или на 0 тогда выборка происходит мнговенно и правильно, как только в одной из таблиц появляется еще одна запись происходит зависание

   
 
 автор: dagmor   (10.01.2007 в 17:30)   письмо автору
 
   для: dagmor   (10.01.2007 в 09:43)
 

???

   
 
 автор: dagmor   (11.01.2007 в 08:44)   письмо автору
 
   для: dagmor   (27.12.2006 в 11:31)
 

пожалуйста, помогите решить проблему, вопрос жизни и смерти... уже все перепробовал, без изменений структуры бд ничего не могу придумать

   
 
 автор: dagmor   (12.01.2007 в 08:24)   письмо автору
 
   для: dagmor   (11.01.2007 в 08:44)
 

уважаемые, неужели никто не может помочь?

   
 
 автор: dagmor   (12.01.2007 в 11:47)   письмо автору
 
   для: dagmor   (12.01.2007 в 08:24)
 

...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования