
Alex
16.01.2017
10:28:41
окей, что делать то ? :)

Vladislav
16.01.2017
10:31:23
оптимизировать
как, это уже зависит от хотелок и желания

Sergey
16.01.2017
10:33:01

Google

Alex
16.01.2017
10:38:34

Vladislav
16.01.2017
10:39:06
как показывает практика, у БД всегда есть что оптимизировать, начиная кривых орм в приложениях

Alex
16.01.2017
10:41:14
у каждой БД есть свои ограничения

Sergey
16.01.2017
11:16:03
Тут, смотрю, нешуточные страсти разгорелись :)
Все это от недосказанности, скорее всего. Короче про бекэнды и прочее. С бекэндом я вас запутал, тк подразумевал скорее так называемый бекоффис. То есть место, где идет постобработка инфомации и аналитика. Бекофис БД имеет совершенно другую структуру. Данные в нее наливает с фронта демон, служба, микросервис (называйте как угодно) после достижения определенных условий и модифицируя их вид. И исходя из того, что это внутренняя система и отделена от фронтэнда - ее можно грузить и гонять как угодно. Железо топовое и ССД-сторадж для нее не критично.

KOT
16.01.2017
11:33:15

Alex
16.01.2017
11:36:33
а если индексы есть и вот это вот всё, и там какая нить 6 нормальная форма с хорошо уложенными данными но аналитику надо по 1-2 млрд записей сделать ? и какой нить hyperloglog не спасет из-за требуемой точности ?

Fike
16.01.2017
11:45:26
вопрос во времени обработки большого сета данных?

Alex
16.01.2017
11:48:23
да
с агрегацией и этим вот всем

Fike
16.01.2017
11:49:28
параллелить
тут других вариантов никогда и не было

Alex
16.01.2017
11:50:02
бесконечно параллелить не получится

Google

Fike
16.01.2017
11:51:55
ну, бесконечные данные конечно существуют, но я их обработку на практике не видел
хотя и для этого есть stream processing

Vladislav
16.01.2017
12:04:01
колоночная БД спасет вообще, но с 6NF кликхаусом не попользуешься, а значит платность будет

Ivan
16.01.2017
19:06:30
В таблице есть поля: фамилия, имя, отчество, дата рождения и еще несколько других. Надо выбрать все записи таблицы, при этом в отдельно поле вывести отметку для записей, где для каждого уникального сочетания ФИО даты рождения больше самой минимальной и меньше самой максимальной для каждого уникального ФИО. Если записей с такими ФИО тлько 1 или 2, то они должны быть помечены.
Есть телепаты кто понимает что надо получить на выходе?

graven
16.01.2017
19:16:34

Ivan
16.01.2017
19:18:05

Vladislav
16.01.2017
20:22:28
оконные функции вообще

Evgeny
17.01.2017
08:41:06
чуваки, помогите разобрался с концепцией логинов в MSSQL
есть логин в сервере, есть логин в базе
Если открыть его на сервере у него нет маппинга к базе
Если открыть его в базе, то логин там есть, права у него есть

Oleg
17.01.2017
09:23:39
А что говорит прекрасная онлайн документация?

Evgeny
17.01.2017
09:26:20
грит что это осиротевшие логины и фиксится это одной командой

Oleg
17.01.2017
09:31:05
Что-то мешает применить эту команду?

Evgeny
17.01.2017
09:32:21
ничего, я уже применил её, всё стало хорошо
просто применил чуть позже, чем написал в чатик

Vladislav
17.01.2017
09:43:04
отличный диалог ??

Al
17.01.2017
13:55:39
Сам придумал, сам решил, сам обиделся.


Дуров
17.01.2017
16:13:10
А можно вопрос уважаемые? Вопрос глупый но мне интересно как деревенщине, Речь про MS SQL. Вот такое выдает:
Сообщение 8967, уровень 16, состояние 218, строка 2
В DBCC произошла внутренняя ошибка. Дальнейшая обработка невозможна. Обратитесь в службу поддержки пользователей.
Сообщение 7985, уровень 16, состояние 2, строка 2
Предварительная проверка системных таблиц: объект с идентификатором 3. Не удалось прочитать страницу (1:51) и заблокировать ее кратковременной блокировкой типа SH. Инструкция проверки прервана из-за неустранимой ошибки.
Результаты DBCC для "gtd150117".
Сообщение 8944, уровень 16, состояние 13, строка 2
Ошибка таблицы: идентификатор объекта 0, идентификатор индекса -1, идентификатор секции 0, идентификатор единицы размещения 196608 (тип Unknown), страница (1:51), строка 76. Тест (ColumnOffsets <= (nextRec - pRec)) не прошел. Значения - 4158 и 62.
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности, не связанных ни с одним объектом.
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в базе данных "gtd150117".
repair_allow_data_loss - это минимальный уровень исправления для ошибок, найденных DBCC CHECKDB (gtd150117, repair_allow_data_loss).

Google

Дуров
17.01.2017
16:13:45
repair_allow_data_loss приводит к такому же сообщению

Evgeny
17.01.2017
17:33:50

Al
17.01.2017
17:36:50

Evgeny
17.01.2017
18:42:25
Хватит демонизировать меня:)

Akzhan
17.01.2017
19:39:53
Хватит демонизировать Redis. Идеальное решение для сессий и простых очередей без durability.

Fike
17.01.2017
20:13:49
эт прям как вывешенная красная тряпка

Sergey
18.01.2017
17:48:23

Dmitriy
19.01.2017
12:55:39
Привет, подскажите почему этот update в postgres всем строкам устанавливает одинаковое значение, хотя подзапрос, на который идет join, возвращает разные для всех строк?
https://gist.github.com/dstarcev/351f0da473c3447f73e5262284562bc6
если просто исполнить подзапрос, получается
deal_id offer_prices
1 { "1" : 1450000 }
3 { "11" : 0 }
4 { "11" : 1450000 }
при апдейте в таблице deals получаю
id offer_prices
1 { "11" : 1450000 }
3 { "11" : 1450000 }
4 { "11" : 1450000 }

raksita
19.01.2017
12:59:53
нужно прописать связь для таблицы из update и выборки from в условие where

Dmitriy
19.01.2017
13:05:00
спасибо, вот так прокатило https://gist.github.com/dstarcev/256f0824520973bfb4664b2f263c41aa
получается что таблица в update и в from в первом запросе это разные сущности
странно после sql server

Dmitry
19.01.2017
13:10:18
Алиасы для того и вешается, что бы на одну и туже таблицу ссылаться как на разные сущности. Ничего странного.

Dmitriy
19.01.2017
13:22:01
точно, в апдейте-то не алиас указан. В sql server можно было делать так
update deal
set offer_prices = prices.offer_prices
from deals as deal
join (
, то есть в udpate указывать алиас. А тут он ругается relation "deal" does not exist

VlIvYur
19.01.2017
13:22:12

Dmitriy
19.01.2017
13:22:39
ага, уже дополнил выше

George
19.01.2017
19:29:07
'ЧТжтч;'

Google

Dmitry
20.01.2017
17:09:10
какой тулзой наглядно две базы на разных серверах сравнить (линукс\мускул)?

Admin
ERROR: S client not available

Dmitry
20.01.2017
17:09:14
кроме перконы
вроде в воркбенче есть, но видимо в платном
нашел еще такую древноту
http://search.cpan.org/dist/MySQL-Diff/bin/mysqldiff

KOT
20.01.2017
17:17:52

Dmitry
20.01.2017
17:18:18
https://dev.mysql.com/doc/workbench/en/wb-database-diff-report.html
не вижу там в Databases

fait
22.01.2017
13:39:26
Доброго всем дня и хорошего вечера.
Возник вопрос насчёт SQL запроса.
База - MS SQL.
Есть 2 таблицы,
в первой:
»> Humans:
Name: char(40);
Surname: char(40);
Number: bigint;
Во второй.
»> ProductDate:
Number: bigint;
ProductCount:int;
DefectProductCount:int;
Каким образом вывести данные из 1-й и второй таблицы, связь по Number, но сделать так, чтобы из Humans вывести все записи, а из ProductDate только связанные по Number ?
Просто вывести - не сложно, SELECT * FROM [Humans], [ProductDate] WHERE [Humans].[Number] = [ProductDate].[Number]
Но в данном случае не выводятся записи из таблицы Humans, у которых нет связи с записями из ProductDate.
Нужно вывести все записи из таблицы Humans и только те записи из таблицы ProductDate, у которых Number совпадает с полем Number из Humans.


Fike
22.01.2017
13:43:34
LEFT JOIN: сопоставить таблицы, оставить все строчки, для которых есть запись из левой таблицы, для тех, в которых нет записи из правой таблицы, установить поля в null
SELECT * FROM Humans AS left
LEFT JOIN ProductDate AS right ON left.Number = right.Number
Number лучше заменить на id, придерживаться underscore_case-конвенции и почитать теорию про джойны, их там много, и они могут по-разному выполняться внутри движка (до этого сам не добрался)

fait
22.01.2017
13:53:16
@etkee спасибо за информацию.
На всякиий случай опубликую рабочий вариант запроса:
'SELECT * FROM Humans LEFT OUTER JOIN ProductData ON ProductData.Number=Humans.Number'


mixa
22.01.2017
17:05:55
привет всем
подскажите пожалуйста как с join'ом обновлять записи таблицы?
как правильно оформляется UPDATE с JOIN'ами?
просто вместо того что бы писать
UPDATE p SET
p.name = (SELECT t.name FROM tpost t WHERE t.uuid=p.uuid AND t.uuid_user='972b5264' AND t.edit_type!='x' ),
p.text = (SELECT t.text FROM tpost t WHERE t.uuid=p.uuid AND t.uuid_user='972b5264' AND t.edit_type!='x' ),
p.tags = (SELECT t.tags FROM tpost t WHERE t.uuid=p.uuid AND t.uuid_user='972b5264' AND t.edit_type!='x' ),
.... и так далее ...
WHERE p.uuid='F12D6075'
AND p.edit_type='x'
я хочу одним джоином тоже самое сделать
UPDATE p SET
p.name = t.name,
p.text = t.text,
p.tags = t.tags,
.... и так далее ...
FROM tpost p
LEFT JOIN tpost t ON t.uuid=p.uuid AND t.uuid_user='972b5264' AND t.edit_type!='x'
WHERE p.uuid='F12D6075'
AND p.edit_type='x'
вот тут нифига нету: https://firebirdsql.org/refdocs/langrefupd21-update.html
но зато тут пишут что люди давно и успешно вот так делают: http://stackoverflow.com/questions/6335388/update-and-left-outer-join-statements
сервер firebird 2.5+
подскажите кто в курсе?
у меня ошибку выдает
"Dynamic SQL Error\nSQL error code = -104\nToken unknown - line 12, column 5\nFROM\n"
ругается на первый FROM в запросе:
UPDATE p SET
p.name = t.name,
p.text = t.text,
p.tags = t.tags,
.... и так далее ...
FROM tpost p
LEFT JOIN tpost t ON t.uuid=p.uuid AND t.uuid_user='972b5264' AND t.edit_type!='x'
WHERE p.uuid='F12D6075'
AND p.edit_type='x'
похоже в файерберде нет join'ов в updat'ах
https://www.experts-exchange.com/questions/28306878/Firebird-SQL-update-with-inner-join.html
вопрос снят, всем спасибо )
а кто нить вкурсе в 3 версии фаерберда join'ы в updat'ах уже работают?
вообще кто нить юзает фаерберд?
и какие лайт субд сейчас в моде? )

Google

Uml
22.01.2017
17:19:45
ребята, запрос sql в jsp .выводит ошибку в логах
Parameter index out of range (1 > number of parameters, which is 0).] with root cause
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
именно строка where выдает ошибку
это условие не отрабатывает
но это условие работает WHERE close_dt>=? AND close_dt<DATE_ADD(?, INTERVAL 1 DAY)
показывает количество закрытых задач в crm
но статус.ид=4 тоже должен показать закрытые задачи

Fike
22.01.2017
17:21:23
мы не дебажим jsp, и вообще стоит найти что-нибудь эм посовременнее

Uml
22.01.2017
17:22:49
кто может мне помочь , напишите пожалуйста в личку. я заплачу

Fike
22.01.2017
17:24:13
вот мы и добрались наконец до дна

Uml
22.01.2017
17:26:08
тебя что-то не устраивает? проваливай
в каком это мире ненормально предлагать деньги за услугу?
любой труд должен оплачиваться