![]() |
|
Модераторы: LSD |
![]()
|
|
| magikanin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 27.4.2007 Репутация: 1 Всего: 1 |
Здравствуйте !
Я студент и у меня сейчас задание - создать из 4-5 таблиц базу данных и оптимизировать ее на 60 % . Возможно кто то имеет ссылку или имеет примеры несложной оптимизации ? Заранее спасибо . |
|||
|
||||
| Sqlninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 15.5.2006 Где: San Francisco, CA Репутация: 13 Всего: 13 |
надо создать 10 таблиц, а потом 6 из них удалить. так вы оптимизируете storage на 60%.
на самом деле постановка задачи звучит очень бредово. хотел бы я посмотреть в однопиксельные глаза автора этого перла. а что надо оптимизировать? место на диске или чтоб имена полей покороче были? -------------------- It's better to burn out than to fade away. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
Пример - легко! Вот база, используемая DDK chat'ом.
Если выкинуть из нее пересекающиеся поля, получатся те самые 40-60%. P.S. Вообще-то это MySql проект, но для примера ввполне может подойти. Это сообщение отредактировал(а) ksnk - 7.5.2007, 09:10 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| magikanin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 27.4.2007 Репутация: 1 Всего: 1 |
Sqlninja,
Возможно я не правильно выразился . Нужно с помощью хинтов , параметров при создании Oracle таблицы (типа index organized , pctfree , pctused)оптимизировать время исполнения самых часто исполняемых операций - select'a и \ или inserta и\или update ( в зависимости от самых часто выполняемых операций ) Допустим с помощью хинта insert /*+ append */ мы скажем ускорим insert в 2 раза . Или изменив порядок joina в Select - быстрее выполняем данный запрос . Oracle'a как такогого мы не изучали - а я выбрал предмет оптимизация баз данных oracle - поэтому немного сложновато . Возможно кто то имеет ссылку на подобный пример где создаеться база данных и оптимизируеться . Спасибо за отклик ! ksnk, Спасибо ! Очень хорошая идея , создам базу чата !! |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Ахренеть Попробуй почитать эту книгу, и как-то перетащить примеры из нее в свою БД. Ну и Кайта, у него тоже были примеры оптимизации. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| magikanin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 27.4.2007 Репутация: 1 Всего: 1 |
LSD
Спасибо большое ! Буду сидеть учиться ! |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
1. не вовсех случаях это поможет, и не факт что в 2 раза! 2. за такие проделки админ бд имеет полное право тебя нагнуть (да грубо, но по другому это не лечится) только после согласования! чаще всего хинты помогают если админ БД м - ак т.е. не собирает статистику БД, вот за это нужно нагинать уже его. в остальных случаях при правельном построении индексов, при собранной статистике БД, CBO сам выберает наиболее оптимальный план запроса. Это сообщение отредактировал(а) DimW - 10.5.2007, 08:38 |
|||
|
||||
| Sqlninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 15.5.2006 Где: San Francisco, CA Репутация: 13 Всего: 13 |
Да ну? В запросе вида "select * from table" - может быть. В базе из 5 таблиц и 3 индексов - может быть, и то не 100%. В более сложных системах и запросах практически всегда остается место для дополнительного тюнинга. CBO рассуждает просто - чем меньше cost - тем круче план. А вот нифига подобного. Например nested loops соединения по столбцам с уникальным индексом могут выполняться на порядок быстрее чем hash join, который оптимизатор выберет по умолчанию, так как cost у него в 10 раз меньше. Естественно, речь идет о частном случае. Так что собранная статистика еще не дает DBA права расслабляться. А уж тем более кого то там нагибать. Это сообщение отредактировал(а) Sqlninja - 10.5.2007, 09:20 -------------------- It's better to burn out than to fade away. |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
Sqlninja, ты меня не правельно понял, я не против хинтов, в некоторых с лучаях они действительно выручают!
я против бездумного использования их. я просто хочу сказать , что если magikanin поставили задачу оптимизировать с помощью хинтов то это не занчит что он должен обязательно их использовать.
и это правельно, но не всегда запрос выполняется по тому плану который сгенерил CBO. |
|||
|
||||
| magikanin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 27.4.2007 Репутация: 1 Всего: 1 |
DimW, Просто есть задание - его надо хоть как то сделать |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
magikanin, давай так: ты определишься что твоя БД будет делать, определишь какие операции часто выполняются, а мы постараемся определить примерные пути решения проблемы. надеюсь ты понимаешь что оптемизация конкретного случая уникальна, по этому 100% превельный вариант тебе врядли кто даст, но примерных путей решения, для преподов думаю будет достаточно. magikanin, ты знаешь - порой потратишь не мало сил на то что бы отдельная бизнес единица твоей БД работала на 2% производительней, а тут 60%. думаю притаком раскладе преподы сами не понимают что хотят и мало что понимают в оптимизации оракла - отсюда следует что им можно грамотным языком впарить что угодно, лишь бы звучало по научному Это сообщение отредактировал(а) DimW - 11.5.2007, 08:05 |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
DimW, Sqlninja, вы по моему о чем-то о своем говорите, а не о том что нужно автору вопроса. Ясно же сказано, что это учебная задача на оптимизацию. Какие админы БД, какие реальные БД, откуда они тут возьмутся.
Берем пример оптимизации: "в случае бла-бла-бла, может помочь бла-бла-бла". Создаем эту ситуацию и убеждаемся, что оптимизация действительно работает. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Sqlninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 15.5.2006 Где: San Francisco, CA Репутация: 13 Всего: 13 |
LSD , magikanin и компания автору вопроса нужно сначала разобраться в ОСНОВАХ Oracle или вся эта работа - вырванные годы. Как можно оптимизировать то, чего не знаешь? -------------------- It's better to burn out than to fade away. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Давай не будем за автора, решать что ему надо Посчитает нужным - разберется, нет - дело его. Может он больше никогда в жизни не будет работать с Oracle, зачем ему тогда тратить время на ненужные знания. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| magikanin |
|
||||||||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 27.4.2007 Репутация: 1 Всего: 1 |
DimW
Спасибо большое за помощь ! Я почитал основы баз данных и написал такую базу данных из 4 таблиц . База данных о режимном обьекте - Атомной Электростанции к примеру. Цель фиксировать в какое время в каком зале был работник , и какой проект он делал . 1 таблица my_zal - это таблица с первичным ключом зала и названием . Ну к примеру название "лаборатория " . 2 таблица my_rabotnik - это описание работника - его первичный ключ , имя , фамилия . 3 таблица my_vremia - первичный ключ , фиксирует время прихода и ухода , внешний ключи - первичный ключ работника , зала и проекта 4 таблица my_projekt - первичный номер проекта и название проекта .
Потом я добавляю внешние ключи
Ну и заполнил данными
На этой базе данных наиболее частые операции - это insert в таблицу my_vremia и полное удаление этой таблицы . Остальные три базы данных практически не меняються , но нам нужен часто быстрее выполнять Select обьединения по всем четырем таблицам . Примерно такой select
Спасибо большое ! LSD
Абсолютно точно ! Sqlninja
Ну что бы сдать предмет LSD
Я считаю что Oracle очень нужная вещь - поэтому и читаю и изучаю - и простейшие действия уже могу сделать . Но пока слабоват . Это сообщение отредактировал(а) magikanin - 13.5.2007, 20:42 |
||||||||||||||||
|
|||||||||||||||||
![]()
|
| Правила форума "Oracle" | |
|
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Oracle | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |