Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Помогите с запросом  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 29037
AlekZ
А зачем индексация по датам? Какие плюсы?

зачем нужно оглавление в книге? чтобы быстро найти нужный раздел. А без оглавления придется каждый раз всю книгу читать от начала до конца.
20 июл 20, 14:35    [22170446]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 29037
AlekZ
ФайрБирде

не удержался :-)
"файрбирд" - это огненная борода (или рыжая борода), firebeard.
А Firebird - это огненная птица, файербёрд. Бёрд, не "бирд".

К сообщению приложен файл. Размер - 10Kb
20 июл 20, 14:39    [22170449]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
AlekZ
Member

Откуда:
Сообщений: 15
kdv,

нужны ли в оглавлении ссылки на каждую точку, а на запятую?
Четкого ТЗ нет, что завтра в этой БД искать придется и какой отчет родить-никто не знает. Делать все поля индексами?

alekcvp , - 22 минуты выполнялся итоговый запрос... и выдал только "нулевые" позиции.

Сообщение было отредактировано: 20 июл 20, 14:45
20 июл 20, 14:47    [22170456]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 29037
AlekZ
Делать все поля индексами?

только те, по которым чаще всего идет поиск.
20 июл 20, 14:55    [22170463]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
KreatorXXI
Member

Откуда: Москва
Сообщений: 1010
AlekZ
Или индекс и ключ не одно и тоже?

Ну а ключ по дате есть? Что такое ключ?
20 июл 20, 14:56    [22170464]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50835

AlekZ
Четкого ТЗ нет, что завтра в этой БД искать придется и какой отчет родить-никто не знает.

Я не буду оригинальничать и предложу оторвать руки проектировщику БД. Её надо просто
выкинуть и сделать заново со следующими таблицами:
1. Справочник категорий.
2. Справочник товаров (с каноническими названиями).
3. Список синонимов (с толпой левых названий и указанием к какому каноническому товару они
относятся).
4. Таблица продаж (движений).

Всё. С этой структурой уже можно работать, искать что угодно и плодить любые отчёты.

Posted via ActualForum NNTP Server 1.5

20 июл 20, 14:59    [22170470]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
AlekZ
Member

Откуда:
Сообщений: 15
KreatorXXI, это я у вас спросил. Ключ для меня ключевое поле, насколько знаю (потеет как на экзамене) бывает примари кей (и еще какой-то мать его кей). Я их по старинке зову ИД. А поскольку дата не может быть конкретным ИД, то я ее ключем не считаю. Можно её использовать как составной ключ, но у нас уже есть ИД, который точно указывает на конкретную запись. Поэтому использовать Дату как ключ-избыточно.
Я прошел собеседование? :)

Dimitry Sibiryakov , ну учитывая что это я, можете мне хоть ногу оторвать.
Легче работать мне от этого не станет, ведь я и прогу напиши и базу сочини и макет нарисуй. Давайте я не буду тут жаловаться на жизнь и как я до этого докатился. Но вот. Переделать БД можно, до сегодняшнего дня она вполне удовлетворяла всех. Переделывать, чтобы потом всплыла новая хотелка-чтобы опять все стены передвигать, учитывая зарплату 100 рублей в час-не самая разумная идея. Ладно бы я мог сказать-извините делаю БД, подождите с другими тасками...нет, иди паши за 5рых, за 100 рублей.

Сообщение было отредактировано: 20 июл 20, 15:01
20 июл 20, 15:00    [22170471]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
alekcvp
Member

Откуда:
Сообщений: 2257
kdv
А Firebird - это огненная птица, файербёрд. Бёрд, не "бирд".

А что, отличный логотип для Legacy-версий 😂
AlekZ
alekcvp , - 22 минуты выполнялся итоговый запрос... и выдал только "нулевые" позиции.

Странно, на ваших тестовых данных всё работает.
20 июл 20, 15:04    [22170473]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
AlekZ
Member

Откуда:
Сообщений: 15
alekcvp, может проскролил и не заметил. Убрал дату из запроса-она все равно не нужна(пока не нужна). Еще 20 минут и узнаем :)
Скорее всего откажемся от этой хотелки. Либо отдельный запрос нулевых продаж будет.
20 июл 20, 15:14    [22170476]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
KreatorXXI
Member

Откуда: Москва
Сообщений: 1010
AlekZ
KreatorXXI, это я у вас спросил. Ключ для меня ключевое поле, насколько знаю (потеет как на экзамене) бывает примари кей (и еще какой-то мать его кей). Я их по старинке зову ИД. А поскольку дата не может быть конкретным ИД, то я ее ключем не считаю. Можно её использовать как составной ключ, но у нас уже есть ИД, который точно указывает на конкретную запись. Поэтому использовать Дату как ключ-избыточно.
Я прошел собеседование? :)

Dimitry Sibiryakov , ну учитывая что это я, можете мне хоть ногу оторвать.
Легче работать мне от этого не станет, ведь я и прогу напиши и базу сочини и макет нарисуй. Давайте я не буду тут жаловаться на жизнь и как я до этого докатился. Но вот. Переделать БД можно, до сегодняшнего дня она вполне удовлетворяла всех. Переделывать, чтобы потом всплыла новая хотелка-чтобы опять все стены передвигать, учитывая зарплату 100 рублей в час-не самая разумная идея. Ладно бы я мог сказать-извините делаю БД, подождите с другими тасками...нет, иди паши за 5рых, за 100 рублей.


Послушайте, это же клиника. Самый лучший вариант - пойти туда, где всплывают хотелки и сказать, что за 100 рублей я даже книгу по теории БД не открою. И скуль мне не упёрся, и файрбирд. За 100 рублей-то!
ВЫ контору свою озвучьте! Я что-то не верю в существовании такой богадельни, как Вы тут описываете.
20 июл 20, 15:38    [22170496]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 3408
kdv
"файрбирд" - это огненная борода (или рыжая борода), firebeard.
Barbarossa :)
Картинка с другого сайта.
20 июл 20, 15:46    [22170503]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
AlekZ
Member

Откуда:
Сообщений: 15
KreatorXXI, я не про лень свою, я про то что ДБА мне тут не светит и спокойно заниматься архитектурой и вылизыванием. Роста в этом направлении не будет. Зачем тогда мучить себя-ведь все равно не получишь конфетку (как продукт, так и премию)?
Более того, давайте приоткрою страшную тайну:
-в одном из случаев Категория товара берется из файла (выгрузки из БД, сформированной в другой программе тетенькой и присланной на емайл). При этом достоверность данных никто не гарантирует.
-в других случаях Категория определяется Таблицей Рокеровка
Как Вам такое?

Смысла нет-если система изначальна хромая. Есть уже БД из которой все могли нормально выгрузить, но нет (проблема управления и прочих элементов власти). В итоге часть выгрузки из БД распечаткой приходит, часть на Емайл, другую часть лучше мы руками будем вести Эксель файл. Вы тут хотите что-то сделать нормальное? Серьезно? без рычагов управления-анрил...А я глядя на ЗП-занимаю пост чуть выше уборщицы, так что порядка не будет :) ИТ- тут не главное...

А про ЗП, Вы приезжайте в Замкадье тут много вакансий на минималочку 12 тыр, на 15 тыр, на 20 тыр (как у меня). Ни в чем себе не отказывайте. Контору говорить не буду-тут не ошибетесь, суйтесь в любую.
20 июл 20, 16:01    [22170515]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50835

AlekZ
Как Вам такое?

Совершенно пофиг, обрабатывается точно так же как и всё остальное: через таблицу синонимов
в структуре, описанной мною выше.

Запрос сводится к тривиальной паре левых джоинов, но с условием по дате оптимизируется
дерьмово, да.

Posted via ActualForum NNTP Server 1.5

20 июл 20, 16:07    [22170519]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
AlekZ
Member

Откуда:
Сообщений: 15
Dimitry Sibiryakov,
у меня также и обрабатывается, если мы про парсер говорим. Только в одном случае таблица игнорируется-и данные берутся из исходника. В другом случае за данными мы лезем в таблицу (за синонимом, за рокеровкой).
В любом случае это костыли, которыми в конечном итоге хвалиться не придется.

Левые джойны почему-то вообще туго выполняются. Пишешь инер-мигом, пишешь лефт-все минута пошла...

Структура если и будет ковыряться-то позже, например вылезет косяк с основными запросами-станут выполняться не за секунду, а за минуту. но пока данные за 3 или уже 4 года (лень смотреть) и летает. Но тут мало данных. На SQL давно делал базу для АТСки, вот там данных вагон-приходилось разбивать по годам.


alekcvp , да, то что надо-проскролил видимо. Но выполнялся 1 час 6 минут :)) Забью я наверное на эту хотелку. Я все равно знаю что еще хотелок навылезает у пользователей, там и посмотрим как лучше переделать.

Сообщение было отредактировано: 20 июл 20, 16:17
20 июл 20, 16:17    [22170527]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
alekcvp
Member

Откуда:
Сообщений: 2257
AlekZ
Но выполнялся 1 час 6 минут :)) Забью я наверное на эту хотелку.

Сколько записей в этих двух таблицах? И за какой интервал делалась выборка?

Сообщение было отредактировано: 20 июл 20, 16:28
20 июл 20, 16:29    [22170536]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
AlekZ
Member

Откуда:
Сообщений: 15
alekcvp, интервал дат 01.04.20-30.06.20 , по этому интервалу 605 записей в Альфе, всего строк в Альфе: 42 664 (в рокеровке: 1536). Если я правильно посмотрел:

select COUNT(*) from rokerovka


reads: 389 989 415
Тут реально не Ваш косяк-оптимизации нет никакой.

Сообщение было отредактировано: 20 июл 20, 16:38
20 июл 20, 16:40    [22170541]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31312
20 июл 20, 16:40    [22170542]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
alekcvp
Member

Откуда:
Сообщений: 2257
AlekZ
интервал дат 01.04.20-30.06.20 ... в рокеровке: 1536

То есть обработка по ~140 тысячам записей, на каждую из них надо просмотреть ~42к записей в alfa... ну тогда не удивительно :)

Сообщение было отредактировано: 20 июл 20, 16:51
20 июл 20, 16:54    [22170549]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
alekcvp
Member

Откуда:
Сообщений: 2257
AlekZ
reads: 389 989 415
Тут реально не Ваш косяк-оптимизации нет никакой.


Сделал отдельные индексы по alfa.id_new_name, alfa.dat, rokerovka.vid, rokerovka.category.
Результат для 1500 записей в рокеровке и 42000 записей в альфа:

План
PLAN SORT (JOIN (JOIN (G NATURAL, R NATURAL), A INDEX (A_IDX2)))

------ Информация о производительности ------
Время подготовки запроса = 0ms
Время выполнения запроса = 5s 859ms
Среднее время на получение одной записи = 5 859,00 ms
Current memory = 79 685 984
Max memory = 79 707 376
Memory buffers = 2 048
Reads from disk to cache = 0
Writes from cache to disk = 0
Чтений из кэша = 8 633 475
20 июл 20, 17:15    [22170558]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50835

AlekZ
Только в одном случае таблица игнорируется-и данные берутся из исходника. В другом случае
за данными мы лезем в таблицу (за синонимом, за рокеровкой).

Это неправильно. Таблица синонимов вообще не должна в запросе участвовать. Только таблица
"настоящих" артикулов.

Posted via ActualForum NNTP Server 1.5

20 июл 20, 17:35    [22170574]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Vlad F
Member

Откуда:
Сообщений: 1320
kdv,

Да уж, парни. А рокеровка у него, вестимо, от слова рокер.
Велика и могуча современная языка.
20 июл 20, 22:39    [22170752]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1591
Vlad F
kdv,

Да уж, парни. А рокеровка у него, вестимо, от слова рокер.
Велика и могуча современная языка.


У меня аж кровь из глаз от этого слова :)
21 июл 20, 03:47    [22170785]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
WildSery
Member

Откуда: да, оттуда.
Сообщений: 18722
Vlad F
А рокеровка у него, вестимо, от слова рокер.
Разумеется.
Раньше в Брянске музыкальный фестиваль был "ROKERovka"
А ещё на ютубе есть такой канал.

Сообщение было отредактировано: 21 июл 20, 09:13
21 июл 20, 09:14    [22170834]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31312
WildSery
А ещё на ютубе есть такой канал.
в ставке гитлера все малахольные... (С)
21 июл 20, 10:07    [22170852]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Firebird, InterBase Ответить