Как стать автором
Обновить
78
0
Sayan Malakshinov @xtender

Oracle ACE, performance tuning and troubleshooting

Отправить сообщение

Актуальность инициативы #BAAG — BattleAgainstAnyGuess

Время на прочтение 4 мин
Количество просмотров 1.3K

14 лет назад, в июне 2007го, Алекс Горбачев, в то время еще CTO Pythian, основал BAAG Party — Battle Against Any Guess — инициативу против любых гаданий при решении технических проблем. Уже тогда это становилось большой проблемой: все чаще на форумах и публичных мейл-листах на вопросы о специфических проблемах, вместо запроса необходимых технических деталей, приходили ответы в духе «а попробуйте то, если не поможет — попробуйте это», «я когда-то видел похожее, мне помогло XXX», «а мне ХХХ не помогло, зато помогло YYY». Рождались различные мифы и порождали еще большее новых, оттуда и всякое «шаманство» и «танцы с бубном» (частично и «работает — не трожь»). Все это вполне объяснимо: сложность ПО и железа экспоненциально увеличивается; количество недостоверной информации а-ля «for dummies» в сети растет как снежный ком; IT отрасли нужно все больше и больше работников на «конвейеры» — «бери больше, кидай дальше». Появление #BAAG тогда было абсолютно закономерным и неотвратимым, но насколько она актуальна сейчас? Почему после ее расцвета и популярности в течение нескольких лет, она в забвении? Что и когда должно появиться ей на замену на данный период развития IT?

BAAG more
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 2

Oracle diagnostic events — Cheat sheet

Время на прочтение 5 мин
Количество просмотров 3.7K

Oracle diagnostic events - это очень мощное средство, но, к сожалению, слабо документированное, поэтому я решил перечислить и свести воедино несколько неизвестных или малоизвестных способов его использования.

Единственная его документация - это очень краткая встроенная документация, доступная по команде oradebug doc в SQL*Plus, и она отсутствует в официальной документации. Вы можете встретить только отрывки из нее в разных блогах, что не очень удобно, поэтому я скомпилировал ее полностью: http://orasql.org/files/events/

Современный синтаксис и несколько простых примеров приведены в oradebug doc event. Я их здесь приводить не буду и начну сразу с примеров.

Read more
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 5

Troubleshooting в Oracle

Время на прочтение 4 мин
Количество просмотров 4K

Этот пост навеян статьями Часть 1. Логирование событий в Oracle PL/SQL и Часть 2. Идентификация событий происходящих в Oracle PL/SQL, в первую очередь, как специалисту по performance tuning и troubleshooting, хотелось бы прокомментировать некоторые нюансы.

Read more
Всего голосов 14: ↑13 и ↓1 +12
Комментарии 4

Oracle: Deterministic functions, result_cache and operators

Время на прочтение 4 мин
Количество просмотров 3.4K

После перевода статьи Oracle: разница между deterministic и result_cache от Steven Feuerstein, хотелось бы дополнить ее действительно важными деталями их устройства. У меня есть серия статей на эти темы, но тут я хотел бы просто все резюмировать и оставить самое важное.

Read more
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 16

The Power of Oracle SQL

Время на прочтение 2 мин
Количество просмотров 8.4K
Прочитав сегодняшний топик «SQL. Занимательные задачки», я вспомнил, что давно хотел порекомендовать отличную книгу для продвинутого уровня Oracle SQL от нашего отличного специалиста по Oracle, Алекса Репринцева — «The Power of Oracle SQL». Мало того, что она сама по себе чрезвычайно полезная для тех, кто хочет знать Oracle SQL на высоком уровне, так она еще и бесплатная! Кроме того, есть версии и на русском, и на английском.

В общем, ссылки на саму книгу.

И на обсуждение самой книги с автором.
Читать дальше →
Всего голосов 11: ↑9 и ↓2 +7
Комментарии 6

Performance tuning and troubleshooting баз данных в наши дни

Время на прочтение 5 мин
Количество просмотров 4.8K
К сожалению, сейчас роль специалистов по Performance tuning и troubleshooting баз данных урезается только до последнего — troubleshooting'a: практически всегда к специалистам обращаются, только когда проблемы уже достигли критической точки, и их нужно решить «еще вчера». Да и то хорошо, если обратятся, а не отсрочат проблему покупкой еще более дорогого и мощного «железа» без детального аудита производительности и нагрузочных тестов. Ведь достаточно часто бывают разочарования: закупили оборудования на сумму в 2-5 раз дороже, а по производительности выиграли лишь 30-40%, весь прирост от которого через несколько месяцев съедается либо увеличением числа пользователей, либо экспоненциальным ростом данных, вкупе с усложением логики.

И сейчас, во времена когда активно растет количество архитекторов, тестеров и DevOps инженеров, а разработчики Java Core оптимизируют даже работу со строками, медленно, но верно наступает пора и оптимизаторов баз данных. СУБД с каждым релизом становятся настолько умнее и сложнее, что изучение как документированных, так и недокументированных нюансов и оптимизаций требует огромного количества времени. Ежемесячно выходит огромное количество статей и проводятся крупные конференции посвященные Oracle. Простите за банальную аналогию, но в этой ситуации, когда администраторы баз данных становятся подобными пилотам самолетов с бесчисленным количеством тумблеров, кнопочек, лампочек и экранов, уже неприлично нагружать их еще и тонкостями оптимизации производительности.
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 12

Некоторые советы при работе с PLSQL

Время на прочтение 6 мин
Количество просмотров 64K
Я решил написать цикл небольших заметок благодаря посту Хорошие привычки в PL/SQL, советы которого и рассмотрю.

В этой части обсудим:
  1. Нюансы %TYPE/%ROWTYPE
  2. Select for update
  3. Работа с коллекциями

Читать дальше →
Всего голосов 23: ↑19 и ↓4 +15
Комментарии 13

Микрозаметка: Итераторы/Генерация диапазонов дат, чисел и тд

Время на прочтение 3 мин
Количество просмотров 1.7K
Эта заметка навеяна топиком "подсчет количества событий календаря в каждом месяце года". В ней нет ничего нового, это просто микрозаметка о возможных решениях.
Хотя задача того топика очень типична и вполне спокойно решалась обычным проходом с case или if:
SELECT
sum(
 CASE
  when t.`start_date`<'2010-02-01' and t.end_date>'2010-01-01'   then 1
  else 0
 end
)
AS jan,
sum(
 CASE
  when t.`start_date`<'2010-03-01' and t.end_date>'2010-02-01'   then 1
  else 0
 end
)
AS feb,
...
FROM test t


Но я счел нужным написать о некоторых возможностях избежать излишнюю ручную работу. Например, если нам необходимо бы было агрегировать не за год и не за два, а, скажем, за последние 5 лет помесячно. Согласитесь, в таком случае 60 строк c if'ами было бы как минимум тяжело читать.
Читать дальше →
Всего голосов 33: ↑29 и ↓4 +25
Комментарии 15

Секционирование. Автоматическое добавление секций

Время на прочтение 15 мин
Количество просмотров 32K
В версии 11g в Oracle появилась несколько новых замечательных схем секционирования — например, удобная функциональность интервального секционирования — автоматического создания секций по мере выхода range из заданных границ.
В версиях до 11g необходимо периодически вручную либо заранее добавлять секции, либо разбивать секцию по умолчанию. То есть постоянно необходимо отслеживать состояние таких таблиц. В данной статье я поделюсь своими решениями для автоматизации таких задач секционирования.
Сначала приведу пример для 11g:
  1. create table res (
  2.   res_id     number not null,
  3.   res_date  date,
  4.   hotel_id  number(3),
  5.   guest_id  number
  6. )
  7. partition by range (res_id)
  8. interval (100) store in (users)
  9. (
  10.   partition p1 values less than (101)
  11. );

Этот скрипт создает секцию p1 для записей, значение столбца res_id которых находится в диапазоне 1-100. Когда вставляются записи со значением столбца res_id меньшим 101, они помещаются в секцию p1, а когда в новой записи значение этого столбца равно или больше 101, сервер Oracle Database 11g создает новую секцию, имя которой генерируется системой. Подробнее с этим примером и прочими новыми схемами секционирования вы можете познакомиться в переводе статьи Арупа Нанды в русском издании Oracle Magazine.
Рассмотренные ниже решения можно применить и в других СУБД, не поддерживающих автоматическое добавление секций
Читать дальше →
Всего голосов 31: ↑27 и ↓4 +23
Комментарии 11

Все решения к задачке к Дню Программиста

Время на прочтение 8 мин
Количество просмотров 1.5K

Я решил объединить все отправленные решения к задаче «С Днем Программиста» в одном топике. При появлении новых решений топик будет обновляться. За понравившиеся решения предлагаю кормить плюсиками авторов, а хабрачитателей награждать инвайтами.
Код на картинке, кстати, тоже решает эту задачу :)
Читать дальше →
Всего голосов 58: ↑52 и ↓6 +46
Комментарии 28

C Днем Программиста!

Время на прочтение 2 мин
Количество просмотров 4K
    ''=~(        '(?{'        .('`'        |'%')        .('['        ^'-')
    .('`'        |'!')        .('`'        |',')        .'"'.        '\\$'
    .'=='        .('['        ^'+')        .('`'        |'/')        .('['
    ^'+')        .'||'        .(';'        &'=')        .(';'        &'=')
    .';-'        .'-'.        '\\$'        .'=;'        .('['        ^'(')
    .('['        ^'.')        .('`'        |'"')        .('!'        ^'+')
   .'_\\{'      .'(\\$'      .';=('.      '\\$=|'      ."\|".(      '`'^'.'
  ).(('`')|    '/').').'    .'\\"'.+(    '{'^'[').    ('`'|'"')    .('`'|'/'
 ).('['^'/')  .('['^'/').  ('`'|',').(  '`'|('%')).  '\\".\\"'.(  '['^('(')).
 '\\"'.('['^  '#').'!!--'  .'\\$=.\\"'  .('{'^'[').  ('`'|'/').(  '`'|"\&").(
 '{'^"\[").(  '`'|"\"").(  '`'|"\%").(  '`'|"\%").(  '['^(')')).  '\\").\\"'.
 ('{'^'[').(  '`'|"\/").(  '`'|"\.").(  '{'^"\[").(  '['^"\/").(  '`'|"\(").(
 '`'|"\%").(  '{'^"\[").(  '['^"\,").(  '`'|"\!").(  '`'|"\,").(  '`'|(',')).
 '\\"\\}'.+(  '['^"\+").(  '['^"\)").(  '`'|"\)").(  '`'|"\.").(  '['^('/')).
 '+_,\\",'.(  '{'^('[')).  ('\\$;!').(  '!'^"\+").(  '{'^"\/").(  '`'|"\!").(
 '`'|"\+").(  '`'|"\%").(  '{'^"\[").(  '`'|"\/").(  '`'|"\.").(  '`'|"\%").(
 '{'^"\[").(  '`'|"\$").(  '`'|"\/").(  '['^"\,").(  '`'|('.')).  ','.(('{')^
 '[').("\["^  '+').("\`"|  '!').("\["^  '(').("\["^  '(').("\{"^  '[').("\`"|
 ')').("\["^  '/').("\{"^  '[').("\`"|  '!').("\["^  ')').("\`"|  '/').("\["^
 '.').("\`"|  '.').("\`"|  '$')."\,".(  '!'^('+')).  '\\",_,\\"'  .'!'.("\!"^
 '+').("\!"^  '+').'\\"'.  ('['^',').(  '`'|"\(").(  '`'|"\)").(  '`'|"\,").(
 '`'|('%')).  '++\\$="})'  );$:=('.')^  '~';$~='@'|  '(';$^=')'^  '[';$/='`';

Поздравляю Вас с праздником, дорогие коллеги!


А не порезвиться ли нам с кодом в честь праздника?
Предлагаю задачку-баловство под катом
Всего голосов 240: ↑211 и ↓29 +182
Комментарии 318

Chumby Hacker Board

Время на прочтение 2 мин
Количество просмотров 5.1K

Многие, наверное, уже слышали о таком замечательном гаджете как Chumby One. Например, здесь был его анонс. Многие даже, наверное, слышали о Sony Dash. Под эти гаджеты сделано уже более 1500 приложений.
Теперь же, если вы любитель «DIY или Сделай Сам», то можете купить саму его начинку, кастомизировать и встроить куда угодно.
Подробнее о нем и его характеристиках
Всего голосов 48: ↑35 и ↓13 +22
Комментарии 38

Устройство лап геккона подсказало решение идеального сцепления для ног робота

Время на прочтение 3 мин
Количество просмотров 12K
Природа вновь подсказывает решения конструкторам. Лапы геккона 60 лет назад уже подсказали автомобильным инженерам рисунок протектора для шин(Ламели). Теперь же стэнфордский инженер-механик Марк Куткоский использовал материал, основанный на устройстве лап геккона, чтобы создать робота Stickybot'a, который может вскарабкиваться на любые поверхности.
Подробнее...
Всего голосов 86: ↑80 и ↓6 +74
Комментарии 83

Добавить возможность установки bgcolor для ячеек таблиц

Время на прочтение 1 мин
Количество просмотров 689
Делая сегодня сводную таблицу столкнулся с тем, что очень неудобно без фона для ячейки. Визуально легче бы воспринималось с различными фонами для строк или ячеек. Можно было бы, конечно, с помощью внедрения рисунка(например, галочку для «Да» и крестик для «Нет») в таблицу, но, как мне кажется, все таки с цветами было бы удобнее и красивее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 0

Обзор типов индексов Oracle, MySQL, PostgreSQL, MS SQL

Время на прочтение 6 мин
Количество просмотров 194K
В одном из комментариев здесь была просьба рассказать подробнее об индексах, и так как, в рунете практически нет сводных данных о поддерживаемых индексах различных СУБД, в данном обзоре я рассмотрю, какие типы индексов поддерживаются в наиболее популярных СУБД
Взглянем?
Всего голосов 99: ↑96 и ↓3 +93
Комментарии 41

Apple патентует дистанционное отключение jailbreak-нутых устройств

Время на прочтение 2 мин
Количество просмотров 1.8K
19 августа Apple подала заявку на патент с названием «SYSTEMS AND METHODS FOR IDENTIFYING UNAUTHORIZED USERS OF AN ELECTRONIC DEVICE». Вкратце суть патента заключается в возможности отключения или ограничения функциональности устройств, которые подпадают под условия «несанкционированных» или «подозрительных» действий. Патент носит спорный характер: среди стандартных «подозрительных» действий(отличие владельца телефона от текущего пользователя и тд) присутствуют также разблокировки и jailbreak'и.

Подробнее
Всего голосов 78: ↑65 и ↓13 +52
Комментарии 143

Версионность и история данных

Время на прочтение 5 мин
Количество просмотров 118K
При разработке баз данных зачастую требуется обеспечить поддержку версионности и хранения истории объектов. Например, у работника может изменяться должность, у должности в свою очередь может меняться оклад — в многомерном моделировании это называется Slowly changing dimensions(далее SCD) — редко изменяющиеся измерения, то есть измерения, не ключевые атрибуты которых имеют тенденцию со временем изменяться. Всего существует 6 основных типов(методов) SCD, которые определяют как история изменений может быть отражена в модели.

Подробнее...
Всего голосов 64: ↑62 и ↓2 +60
Комментарии 50

Начинается тестирование на людях протеза руки, управляемого непосредственно мозгом

Время на прочтение 2 мин
Количество просмотров 4.7K

Впервые в мире начинается тестирование на людях модульного протеза руки, управляемого непосредственно мозгом. Совместный проект Пентагона и Лаборатории прикладной физики Джона Хопкинса(APL) — модульный протез руки — будет полностью контролироваться сенсорами имплантированными в мозг, и даже будет создавать ощущения прикосновения, передавая электрические импульсы обратно в кору головного мозга.
Подробнее...
Всего голосов 73: ↑68 и ↓5 +63
Комментарии 93

Функции Oracle 11g Pivot, Unpivot

Время на прочтение 9 мин
Количество просмотров 92K
В версии 11g появились функции Pivot/Unpivot(которые сначала появились в MS SQL 2005), позволяющие динамически разносить вертикальные данные по столбцам как нам удобно.


Подробнее
Всего голосов 35: ↑31 и ↓4 +27
Комментарии 14
1

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность