Миллсап про тюнинг
Jun. 11th, 2011 01:38 amМеня до сих пор удивляет то, что на рынке Oracle производительность считается работой администраторов, а не разработчиков. От разработчиков как минимум на 90% зависит, насколько быстро сможет работать приложение. Я думаю, так повелось с тех времён, когда множество проектов имело команды администраторов, но не имело команд профессиональных разработчиков.
Большинство тех проектов были связаны с внедрением больших «коробочных» приложений типа Oracle Financial и Manufacturing Applications (которые выросли в Oracle E-Business Suite). Разработчики, участвовавшие в таких проектах, не были профессионалами. Как правило, это были люди от бизнеса, не имевшие программистского образования, но им сказали, что теперь-де каждый может написать программу на этом новом языке четвёртого поколения, именуемом SQL.
Ясное дело, что внедряя Чрезвычайно Гибкое Приложение с двадцатью тысячами таблиц в базе, вы столкнётесь с проблемами производительности. Кто-то должен их решать, и администраторы оказались единственными технически подкованными людьми, способными на это. Они также участвовали в организации первых конференций Oracle, и я думаю, что с тех пор термин «performance tuning» стал прочно ассоциироваться с администраторами.
В результате по сей день встречается убеждение, что решение проблем производительности сводится к списку хитрых трюков, которые можно попробовать в надежде, что система начнёт работать чуточку быстрее. Слово «тюнинг» говорит само за себя. Я практически никогда его не использую, кроме как в насмешку, потому что это всего лишь дешёвая имитация того, что действительно нужно, а именно — настоящей оптимизации производительности, которая является задачей дизайнеров и разработчиков.
Довольно свободный перевод кусочка из оригинала.
no subject
Date: 2011-06-10 10:28 pm (UTC)Ну так, пардон, нефиг было городить монструозность на голом месте. Вот теперь расхлебывайте %)
no subject
Date: 2011-06-11 09:42 am (UTC)Но.
Во-первых, монструозность проистекает не из голого места, а из Чрезвычайной Гибкости. Понятно, что если тот же Oracle E-Business Suite писать каждый раз отдельно под нужды конкретной организации, то всё будет существенно проще. Но кто ж будет этим заниматься?
А во-вторых, проблемы производительности проистекают не только из монструозности приложения, но и (в основном) из больших объёмов данных. Так что проблемы гарантированы в любом случае...
no subject
Date: 2011-06-13 02:11 pm (UTC)no subject
Date: 2011-06-17 06:07 am (UTC)Традиционно-ориентированные разработчики привыкли к императивному стилю программирования. Сам всё запрограммировал, сам расхлёбываешь. Собственно, что повсеместно и происходит: попытки навязать БД своё видение алгоритма редко бывает удачным, потому что мыслить циклами при работе с БД нельзя.
А вот SQL — штука декларативная, там изрядная часть работы происходит за кулисами оптимизатора. И разработчик должен учиться не мешать оптимизатору, и даже наоборот — помогать. То есть переключиться в декларативную парадигму. И администратор тут совершенно ни при чём.
Другое дело, что оптимизатор иной раз не справляется, и чтобы разобраться в проблеме и аккуратно её исправить, требуются знания, которые к традиционному программированию отношения вроде как не имеют: все эти трассировки, ожидания, планы запроса... Считать ли это областью ответственности администратора? На мой взгляд, тоже нет.
no subject
Date: 2011-06-11 10:48 am (UTC)производительность зависит даже от постановщиков задач
no subject
Date: 2011-06-11 11:51 am (UTC)Поэтому я не верю в распространенную схему (эксплуатируемую, в частности, самим Ораклом), когда разработчик понимается как тупой кодер, послушно переводящий детальное ТЗ на язык программирования.
Мы у себя так не поступаем.
no subject
Date: 2011-06-12 11:47 am (UTC)Я вот как-то погорячилась и согласилась прописать, что время реакции должно быть 5-10 сек. А при каких условиях - не прописали. Дык до сих пор мучаемся.
no subject
Date: 2011-06-11 10:57 am (UTC)но администраторы тоже хотят есть
но и разработчики многого не знают)
no subject
Date: 2011-06-11 11:53 am (UTC)Но и разработчики люди неглупые, могут научиться.
Сплошные но :)
no subject
Date: 2011-06-12 11:40 am (UTC)У нас на проекте разработчика, сходившего на 2-х недельные админские курсы, словно подменили. Удалось сдвинуть несколько проблем, казавшихся ранее тупиковыми. И еще дополнительный бонус - он начал говорить с админами заказчика на понятном им языке. Это тоже дорогого стоит.
no subject
Date: 2011-06-17 05:53 am (UTC)no subject
Date: 2012-11-24 02:20 pm (UTC)no subject
Date: 2012-11-24 09:09 pm (UTC)