Size: a a a

SqlCom.ru - уголок MS SQL

2021 June 20

O

Oleg T in SqlCom.ru - уголок MS SQL
Я говорил про колонки, не про строки
источник

АА

Ахмад Асхабалиев... in SqlCom.ru - уголок MS SQL
чтобы дальше джоинить
источник

O

Oleg T in SqlCom.ru - уголок MS SQL
Сразу джойнить эту таблицу с нужными можно
источник

АА

Ахмад Асхабалиев... in SqlCom.ru - уголок MS SQL
а там уcловие есть where
источник

АА

Ахмад Асхабалиев... in SqlCom.ru - уголок MS SQL
я не знаю как в джоине его прописать
источник

O

Oleg T in SqlCom.ru - уголок MS SQL
Лучше почитать тогда. Копировать данные во временную таблицу только лишь для удобства это очень плохой паттерн.
источник

АА

Ахмад Асхабалиев... in SqlCom.ru - уголок MS SQL
если не сложно можешь написать какую конструкцию используют на подобии where только в джоинах?
источник

O

Oleg T in SqlCom.ru - уголок MS SQL
Прочитай про common table expression. Как временная таблица, только в большинстве случаев не требует копирования данных, что сильно быстрее.
источник

АА

Ахмад Асхабалиев... in SqlCom.ru - уголок MS SQL
и да если я отрезаю рандомное количество то запрос работает все еще медлено


ORDER BY NEWID() / TOP 900000
источник

O

Oleg T in SqlCom.ru - уголок MS SQL
Select a, b, c from table1 t join table2 t2 on t.a = t2.a and (тут можешь написать вообще любые словия к таблицам в соединении)
источник

АА

Ахмад Асхабалиев... in SqlCom.ru - уголок MS SQL
аа не вроде нормально)

сорри

спасибо большое сейчас посмотрю что будет дальше
источник

O

Oleg T in SqlCom.ru - уголок MS SQL
Оставь топ, но убери ордер бай
источник

АА

Ахмад Асхабалиев... in SqlCom.ru - уголок MS SQL
мне нужно чтобы данные были рандомные

я их буду использовать для анализа
источник

АА

Ахмад Асхабалиев... in SqlCom.ru - уголок MS SQL
а топ вроде просто все подряд выводит
источник

O

Oleg T in SqlCom.ru - уголок MS SQL
Ну.. Тогда выбери больше, потом отсей рандомом. Просто щас ты генеришь миллиард случайных значений и по ним сортируешь. Это очень медленно по определению
источник

Y

Yuriy T in SqlCom.ru - уголок MS SQL
Кажется можно что-то типо order by (select null)  или типо того, но могу ошибаться

Хотябы генерить гуиды не будет
источник

O

Oleg T in SqlCom.ru - уголок MS SQL
Вообще когда медленно, то надо план выполнения смотреть. Но это особое кунфу, если не сталкивался, то в двух словах не опишешь
источник

АА

Ахмад Асхабалиев... in SqlCom.ru - уголок MS SQL
у меня есть миллиард строк из них мне нужно 900k

для максимального рандома я использую:

with A as (SELECT TOP 900000 * FROM data
WHERE DateId BETWEEN 20210301 AND 20210401
ORDER BY NEWID()
)
источник

O

Oleg T in SqlCom.ru - уголок MS SQL
Вот у тебя условие по дате есть, ему удовлетворяют 900к строк или больше?
источник

АА

Ахмад Асхабалиев... in SqlCom.ru - уголок MS SQL
так в этом и условии 1 миллиард строк)
источник