Splashzr

Пользователь

Регистрация: 01.06.2014

Сообщения: 2773

Рейтинг: 1045

Splashzr

Регистрация: 01.06.2014

Сообщения: 2773

Рейтинг: 1045

Всем приветpepeshapka.png Будет собеседка на новый project поэтому прошу Вас накидать какие-либо интересные вопросы щекочущие (не надо лезть в глубь прям) , освежить знания нужно. MS SQL 2012 - книга экзамен как вариант которая пройдена. 

 

Прошу просто придумать/вспомнить различные вопросы.

 

Примеры вопросов :

 

1) Разница OLAP и OLTP

2) Чем заменить NOT EXISTS 

3) В чем разница табличных переменных и временных таблиц, когда что лучше использовать

4) Какие типы индексов знаешь, их структуру

5) Какие способы загрузки в БД за один раз множества значений

6) Разница/плюсы/минусы JOIN и APPLY

7) Как сделать сумму без GROUP BY ?

8) Какой execution plan лучше при поиске по индексу

Graundefined

Пользователь

Регистрация: 01.11.2013

Сообщения: 1435

Рейтинг: 2373

Graundefined

Регистрация: 01.11.2013

Сообщения: 1435

Рейтинг: 2373

Что такое HAVING

ubluda2020

Пользователь

Регистрация: 14.02.2020

Сообщения: 233

Рейтинг: 32

ubluda2020

Регистрация: 14.02.2020

Сообщения: 233

Рейтинг: 32

круто у меня тоже скоро собес - давай вместе готовится и друг друга мотивировать 

Grega

Пользователь

Регистрация: 29.06.2013

Сообщения: 774

Рейтинг: 308

Grega

Регистрация: 29.06.2013

Сообщения: 774

Рейтинг: 308

Чёт начал отвечать на твой список, а это просто примеры. Первый, кстати, глупый, это совершенно разные вещи.

 

Про транзакции, уровни изоляции, оптимизацию запросов, принцип работы индексов, репликацию, шардирование повтори.

3НФ ещё полезная концепция. Обычно её все интуитивно используют, но пробежатся по теории тоже можно.

 

Из интересных, в голову приходит "разница между where и having". Очень редко кто может корректно сформулировать ответ.

Splashzr

Пользователь

Регистрация: 01.06.2014

Сообщения: 2773

Рейтинг: 1045

Splashzr

Регистрация: 01.06.2014

Сообщения: 2773

Рейтинг: 1045

Grega сказал(а):

"разница между where и having"

Нажмите, чтобы раскрыть...

having же используется только при агрегатных функциях т.е. если у нас присутствует group by и нам нужно произвести какие-либо доп действия мы юзаем потом having разве нет?RaphiOhMy.png

Grega сказал(а):

Про транзакции, уровни изоляции, оптимизацию запросов, принцип работы индексов, репликацию, шардирование повтори.

3НФ ещё полезная концепция. Обычно её все интуитивно используют, но пробежатся по теории тоже можно.

Нажмите, чтобы раскрыть...

это всё есть у меня в повторении, я имел ввиду интересные вопросы не типа - что такое ACID а например - просуммируй мне без GROUP BY, как изменить запрос в котором OUTER APPLY чтобы он сработал быстрее.

Grega

Пользователь

Регистрация: 29.06.2013

Сообщения: 774

Рейтинг: 308

Grega

Регистрация: 29.06.2013

Сообщения: 774

Рейтинг: 308

Splashzr сказал(а):

having же используется только при агрегатных функциях т.е. если у нас присутствует group by и нам нужно произвести какие-либо доп действия мы юзаем потом having разве нет?RaphiOhMy.png

 

это всё есть у меня в повторении, я имел ввиду интересные вопросы не типа - что такое ACID а например - просуммируй мне без GROUP BY, как изменить запрос в котором OUTER APPLY чтобы он сработал быстрее.

Нажмите, чтобы раскрыть...

 

having это просто постфильтрация. Запрос выполнится полностью и из вывода уберутся значения, которые отрезал хэвингом. Можно и без группировок. Но запрос никак не оптимизируется. select * from table having id<2 честно вытащит из базы всю таблицу, и только потом отрежет ненужные айдишки.

 

Ну вот такие конструкции можно повторить. На их базе очень много вопросов можно придумать:

select t1.id,(select sum(amount) from table2 t2 where t1.id=t2.id) from table t1; #подзапросы внутри колонок. Работает примерно как APPLY, выполняется подзапрос для каждой строки.

 

Но это чистый sql. Конкретно по mssql'y ничего не подскажу, я больше по oracle и mariadb

withdota

Пользователь

Регистрация: 29.01.2018

Сообщения: 3424

Рейтинг: 2433

withdota

Регистрация: 29.01.2018

Сообщения: 3424

Рейтинг: 2433

img
Splashzr сказал(а):

Всем приветpepeshapka.png Будет собеседка на новый project поэтому прошу Вас накидать какие-либо интересные вопросы щекочущие (не надо лезть в глубь прям) , освежить знания нужно. MS SQL 2012 - книга экзамен как вариант которая пройдена. 

 

Прошу просто придумать/вспомнить различные вопросы.

 

Примеры вопросов :

 

1) Разница OLAP и OLTP

2) Чем заменить NOT EXISTS 

3) В чем разница табличных переменных и временных таблиц, когда что лучше использовать

4) Какие типы индексов знаешь, их структуру

5) Какие способы загрузки в БД за один раз множества значений

6) Разница/плюсы/минусы JOIN и APPLY

7) Как сделать сумму без GROUP BY ?

8) Какой execution plan лучше при поиске по индексу

Нажмите, чтобы раскрыть...

Если просто бизнес аналитик, то максимум что спросят ето поведение соединений с нулами или оконные функции. Если аналитик Бд, то там уже с оптимизации запросов и всякими отправками пакетов, если разраб то там уже процедуры, тригеры. Если архитектор, тоты бы не писал этот мусор. 

Splashzr

Пользователь

Регистрация: 01.06.2014

Сообщения: 2773

Рейтинг: 1045

Splashzr

Регистрация: 01.06.2014

Сообщения: 2773

Рейтинг: 1045

withdota сказал(а):

Если просто бизнес аналитик, то максимум что спросят ето поведение соединений с нулами или оконные функции. Если аналитик Бд, то там уже с оптимизации запросов и всякими отправками пакетов, если разраб то там уже процедуры, тригеры. Если архитектор, тоты бы не писал этот мусор. 

Нажмите, чтобы раскрыть...

я не бизнес аналитик а developer.

Jaood

Пользователь

Регистрация: 09.09.2019

Сообщения: 3405

Рейтинг: 2051

Jaood

Регистрация: 09.09.2019

Сообщения: 3405

Рейтинг: 2051

Каким образом отследить какая часть запроса неэффективна\долго исполняется?

typical_user

Пользователь

Регистрация: 06.04.2014

Сообщения: 1057

Рейтинг: 2666

typical_user

Регистрация: 06.04.2014

Сообщения: 1057

Рейтинг: 2666

Чем отличается LEFT JOIN от RIGHT JOIN? (обычно это первый вопрос, которым отсеивают мимокродилов)

Sariagach

Пользователь

Регистрация: 30.06.2019

Сообщения: 14

Рейтинг: 4

Sariagach

Регистрация: 30.06.2019

Сообщения: 14

Рейтинг: 4

на guru 99 посмотри там есть вопросы которые чаще всего задают по SQL, и не только 

Splashzr

Пользователь

Регистрация: 01.06.2014

Сообщения: 2773

Рейтинг: 1045

Splashzr

Регистрация: 01.06.2014

Сообщения: 2773

Рейтинг: 1045

typical_user сказал(а):

Чем отличается LEFT JOIN от RIGHT JOIN? (обычно это первый вопрос, которым отсеивают мимокродилов)

Нажмите, чтобы раскрыть...

слишком уж простенький вопрос

Grega

Пользователь

Регистрация: 29.06.2013

Сообщения: 774

Рейтинг: 308

Grega

Регистрация: 29.06.2013

Сообщения: 774

Рейтинг: 308

Немного на понимание общих принципов работы субд:

1. В каком порядке соединяются таблицы при JOIN'e

2. Имеет ли смысл использовать временную таблицу вместо подзапроса. И почему.

3. В каких случаях индексы могут замедлить скорость выполнения запроса

4. Верно ли утверждение, что NULL=NULL