Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 10.11.2011
Сообщений: 85

Оптимизация запросов

26.05.2013, 16:50. Показов 1319. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Помоги те пожалуйста написать запросы...очень нужно...спасибо за ранее)

Задача "Королевские дома Европы"
Предположим, для хранения данных о монархических династиях Европы используется такой набор реляционных таблиц
МОНАРХ (*имя, прозвище, династия, дата_начала_правления, дата_окончания_правления)
РОДИТЕЛИ (*имя_монарха_ребенка,*имя_монарха_родит еля)

а) напишите запрос для определения второго по продолжительности срока правления монарха;
б) напишите запрос для определения той пары/пар <монарх_родитель, монарх_ребенок>, суммарный срок правления которых был бы второй по длительности.
в) создайте таблицы "МОНАРХИ" и "РОДИТЕЛИ" с помощью SQL Server Management Studio, занесите вручную или сгенерируйте набор значений (10000 записей)
г) выполните запросы (а) и (б) в режиме отображения плана исполнения запроса, зафиксируйте результаты
д) предложите действия по оптимизации запросов (а) и (б)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.05.2013, 16:50
Ответы с готовыми решениями:

Оптимизация запросов
Где можно коротко и ясно прочитать про оптимизацию запросов и использование планов выполнения запросов?

Оптимизация запросов или как обрабатывать пачками?
В данный момент есть прототип системы. но он страдает тем что у нас есть какой либо запрос который вернёт нам кучу параметров. Далее во...

MS SQL Server 2008 - 2012. Оптимизация запросов
Доброго времени суток, граждане. Хочется прокачать скилл написания оптимальных SQL-запросов. Базовые знания которые позволяют читать...

1
437 / 144 / 9
Регистрация: 12.01.2009
Сообщений: 678
Записей в блоге: 1
27.05.2013, 17:30
Цитата Сообщение от Lexa777 Посмотреть сообщение
в) создайте таблицы "МОНАРХИ" и "РОДИТЕЛИ" с помощью SQL Server Management Studio, занесите вручную или сгенерируйте набор значений (10000 записей)
Кликните здесь для просмотра всего текста
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
--Создаем Базу данных
CREATE DATABASE Houses
 
--Потом создаем таблицы
USE Houses
 
CREATE TABLE monarch
    (
    id INT NOT NULL PRIMARY KEY,
    name NVARCHAR(50) NOT NULL,
    nickname NVARCHAR(50) NOT NULL,
    dynasty NVARCHAR(50) NOT NULL,
    dtStartReign DATETIME NOT NULL,
    dtEndReign DATETIME NOT NULL
    )
 
CREATE TABLE Parents
    (
    id INT IDENTITY(1,1) NOT NULL PRIMARY KEY ,
    ChildName NVARCHAR(50) NOT NULL,
    ParentName NVARCHAR(50) NOT NULL
    )


Кликните здесь для просмотра всего текста
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
--загружаем рандомные строки (пока сделал для дам больше 01.01.1753)
DECLARE 
    @idrow INT = 1,
    @text NVARCHAR(50),
    @length INT = RAND() * 50,
    @dtStart DATETIME2,
    @dtFinish DATETIME2,
    @i INT
    
WHILE @idrow <= 10000
BEGIN
    SET @dtStart = (select DateAdd(d, ROUND(DateDiff(d, '17530101', '20130531') * RAND(), 0), '17530101'))
    SET @dtFinish = DateAdd(d, ROUND(DateDiff(d, @dtStart, '2013-05-31') * RAND(), 0), @dtStart)
    
    SET @text  = ''
    SET @length = RAND() * 50
    SET @i = 0
    WHILE (@i < @length)
    BEGIN
        SET @text = @text + CHAR(RAND() * 26 + 65)
        SET @i = @i + 1
    END
 
    INSERT INTO monarch VALUES
        (
        @idrow
        ,@text
        ,@text
        ,@text
        ,@dtStart
        ,@dtFinish
        )
    SET @idrow = @idrow + 1
END
 
 
INSERT INTO Parents
SELECT m1.name, m2.name
FROM monarch m1 INNER JOIN monarch m2 ON m1.id <> m2.id AND m1.dtStartReign = m2.dtEndReign


Цитата Сообщение от Lexa777 Посмотреть сообщение
а) напишите запрос для определения второго по продолжительности срока правления монарха;
Кликните здесь для просмотра всего текста
T-SQL
1
2
3
4
5
6
7
8
SELECT *, DATEDIFF(dd, dtStartReign, dtEndReign) AS ReignPeriod
FROM monarch
ORDER BY DATEDIFF(dd, dtStartReign, dtEndReign) DESC
 
SELECT TOP(1) *, DATEDIFF(dd, dtStartReign, dtEndReign) AS ReignPeriod
FROM monarch
WHERE DATEDIFF(dd, dtStartReign, dtEndReign) <> (SELECT(MAX(DATEDIFF(dd, dtStartReign, dtEndReign))) FROM monarch)
ORDER BY DATEDIFF(dd, dtStartReign, dtEndReign) DESC



Цитата Сообщение от Lexa777 Посмотреть сообщение
б) напишите запрос для определения той пары/пар <монарх_родитель, монарх_ребенок>, суммарный срок правления которых был бы второй по длительности.
Кликните здесь для просмотра всего текста
T-SQL
1
2
3
4
5
6
7
8
SELECT res.*
FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY DATEDIFF(dd, m1.dtStartReign, m1.dtEndReign) + DATEDIFF(dd, m2.dtStartReign, m2.dtEndReign) DESC) AS Row, p.*,  DATEDIFF(dd, m1.     dtStartReign, m1.dtEndReign) + DATEDIFF(dd, m2.dtStartReign, m2.dtEndReign) AS ReignPeriod
FROM Parents p INNER JOIN monarch m1 ON  m1.name = p.ParentName 
    INNER JOIN monarch m2 ON m2.name = p.ChildName
) AS res
WHERE Row = 2
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.05.2013, 17:30
Помогаю со студенческими работами здесь

Оптимизация запросов
Как можно оптимизировать запрос, в котором используется оператор 'LIKE'?? Запрос: &lt;&lt; select * from tab1 where tff like:...

Оптимизация запросов
Здравствуйте. Стоит задача написать форум. Темы сортируются по дате. Увеличивается время выборки данных из БД. Подскажите как можно...

Оптимизация запросов
Всем добрый день ! Мне необходимо оптимизировать запросы ко многим таблицам, то есть структура моей основной таблицы с данными реализована...

Оптимизация запросов в бд
Нужна помощь специалиста оптимизировать код отправки запросов в БД (подскажите как что) а то работает отлично только страшный шибко...

Оптимизация запросов
Всем привет! Очень долго сражаюсь с одним запросом и никак не могу победить. Кажется уже, что оптимизировал все, что можно. Хочу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru