![]() |
|
Модераторы: Akella |
![]()
|
|
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
||||
|
||||
| Deniz |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
честно говоря подробно не разбирался, но такое ощущение, что они еще и результат разный выдают. Та, что с min ищет минимальную дату на прошлой неделе, а другая "смотрит" вперед по датам. Даже твой "страшный" select с extract'ом можно оптимизировать до неузнаваемости. Например, сначала вычислить период прошлой недели (дата начала и дата окончания недели), от переданной даты. А потом
Подсказка, если удается добиться использования уникального индекса, скорость возрастает на порядки, неуникальный хороший индекс тоже поможет. А вообще читай www.ibase.ru и вот например FAQ: оптимизация запросов -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
||||||
|
|||||||
| Alkor135 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 5.4.2009 Репутация: нет Всего: нет |
Извиняйте, ребята. Я еще совсем мало с IBExpert работаю. Вот смотрю на экран и не вижу этого memo поля. Ткните меня носом, где оно должно быть? А может я что-то в настройках не включил? ![]() |
||||
|
|||||
| Alkor135 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 5.4.2009 Репутация: нет Всего: нет |
||||
|
||||
| Gluttton |
|
||||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 7 Всего: 54 |
Да ради Бога
Да... Я тоже удивился, что его нету... Что бы появилось нужно нажать на кнопочку "Edit" (после выполнения процедуры) и искать это поле внизу. А ещё можно выполнять процедуры несколько иначе. Создать новый скрипт (кнопочка обведена желтым) вставить в него код вызова процедуры и выполнить. И ещё... У Вас нет тригеров и генераторов - это хоть и возможно, но весьма подозритьельно, а вот то что нет доменов - это однозначно, не то что бы не правильно, а скорее не оптимально с точки зрения удобства работы с кодом. ![]() Это сообщение отредактировал(а) Gluttton - 29.5.2009, 07:50 -------------------- Слава Україні! |
||||
|
|||||
| Alkor135 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 5.4.2009 Репутация: нет Всего: нет |
Deniz, спасибо за мысли и за ссылки.
Поразбираюсь на досуге. |
|||
|
||||
| Deniz |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
||||
|
|||||
| Alkor135 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 5.4.2009 Репутация: нет Всего: нет |
Gluttton, триггеров действительно нет, но думаю они и не нужны мне.
Ведь событий у таблиц не будет, мне не нужны в них изменения. Насчет генераторов... не вижу в них практической пользы. Насчет Доменов, вообще не понял, что это за зверь и с чем его едят? Попробовал после выполнения процедуры переключиться на вкладку Edit, но поля со временем выполнения процедуры опять не нашел: ![]() Через SQL редактор, тестировать на скорость каждый запрос в процедуре, мне кажется долго, но если необходимость возникнет, то сделаю. Спасибо за подсказку. |
|||
|
||||
| Alkor135 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 5.4.2009 Репутация: нет Всего: нет |
Deniz, да, теперь я понял, что только в запрсах можно посмотреть время выполнения.
А вот было бы в процедурах, было бы замечательно. Вот как организовать запрос у: while (NOT exists (SELECT da FROM audcad WHERE da = :p_input_date_min)) do p_input_date_min = p_input_date_min + 1; |
|||
|
||||
| Gluttton |
|
||||||||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 7 Всего: 54 |
Это конечно не относиться к теме, но раз сказал "А", то говорю и "В". Отсутствие тригеров и генераторов - признак того, что в БД отсутствуют поля AUTOINCREMENT в нотации Access, которые приверженцы сурогатных ключей используют в качестве первичных ключей. Но это совершенно не догма. Домены, не знаю как это будет правильно, но если своими словами, то это именованый пользовательский тип данных, например: определив однажды домен:
можно его многократно использовать в дальнейшем (при создании таблиц):
Ну дык
Это сообщение отредактировал(а) Gluttton - 29.5.2009, 09:01 -------------------- Слава Україні! |
||||||||
|
|||||||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
||||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
Так же можно просто сделать select из процедуры
Согласен с Gluttton, отсутствие доменов, генераторов и триггеров настораживает. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Alkor135 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 5.4.2009 Репутация: нет Всего: нет |
Gluttton, я так понял, что триггеры и генераторы мне не нужны.
Зачем мне суррогатные ключи, скорости они не прибавят. Спасибо за просвящение с Доменами, теперь их использовать мне тоже не имеет смысла, ведь таблицы уже созданы. Добавлено @ 12:52 Akella, спасибо за подсказки по настройке интерфейса. Оказывается IBExpert и по русски может Akella, Gluttton, Deniz, попробовал я выполнить процедуру из SQL редактора. Все равно время выполнения не показывает. ![]() А может это ограничения персональной версии. Ведь не открывается у меня анализ плана, говорит, что в персональной версии не предусмотрено. Это сообщение отредактировал(а) Alkor135 - 29.5.2009, 12:54 |
|||
|
||||
| Alkor135 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 5.4.2009 Репутация: нет Всего: нет |
Я свой вопрос решил.
Правда не имя таблицы загонял как входящий параметр, а вклеивал начало вызываемой процедуры(через Query) из Delphi.
Всем Большое Спасибо!!! По Вашим советам позже еще пооптимизирую SQL код. Всем бы поставил плюсики, но говорят у меня еще постов для этого мало :( . Это сообщение отредактировал(а) Alkor135 - 29.5.2009, 14:19 |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
Первый раз слышу про персональную версию. Скачай полную http://forum.vingrad.ru/index.php?showtopi...t&p=1866918 |
|||
|
||||
![]()
|
| Правила форума "Interbase" | |
|
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |