
- •Оглавление
- •1. Понятия и определения (система и признаки, экономическая система, макропредставление, микропредставление, структура системы)
- •2. Предприятие (фазы планирования, виды анализа, решения на предприятии, информация на предприятии, этапы развития информационной системы на предприятиях)
- •3. Процессы, происходящие в информационных системах
- •4. Классификация корпоративных ис
- •5. Классификация архитектур кис. Mainframe
- •6. Классификация архитектур кис. Файл-сервер
- •7. Классификация архитектур кис. Клиент-сервер
- •8. Классификация архитектур кис. Intranet
- •9. Классификация архитектур кис. Сервис-ориентированная архитектура. Web-сервисы. Используемые стандарты (xml, soap, wsdl, uddi)
- •10. Классификация архитектур кис. Системы основанные на распределенной архитектуре. Corba. Dcom
- •11. Общие сведения о Microsoft sql Server. Архитектура sql Server. Архитектура доступа к данным. Компоненты Microsoft sql Server. Клиентские компоненты
- •12. Типы данных в ms sql Server. Описание переменных. Операторы, функции
- •13. Transact sql. Dcl, ddl, dml. Ссылки на объекты в Transact sql. Элементы управления выполнением программы. Пакеты и сценарии
- •14. Sql запросы. Обработка запросов. Способы кэширования запросов. Организация транзакций
- •15. Хранимые процедуры в ms sql Server. Преимущества использования хранимых процедур. Обработка хранимых процедур. Синтаксис создания хранимых процедур
- •16. Триггеры в ms sql Server. Использование триггеров. Правила использования триггеров. Принцип работы триггеров
- •17. Объектная модель asp.Net
- •18. Объектная модель ado.Net
- •19. Методология управления и контрроля it на основе стандарта Cobit
- •20. Модели зрелости предприятия
14. Sql запросы. Обработка запросов. Способы кэширования запросов. Организация транзакций
Обработка запросов.
Можно разделить запросы на два типа: кэшированные и некэшированные. Увидеть ход выполнения запроса можно в Query Analizer.
Некэшированные
Анализ, проверка правильного синтаксиса.
Проверка прав пользователя на выполнение операций.
Определение целесообразности создания индексов и стратегии объединения.
Перевод запроса в исполнительную форму.
Обработка откомпилированного запроса.
Кэшированные
Способы кэширования запросов.
Кэширование незапланированных запросов. Происходит автоматически. Если SQL Server встречает структуру уже выполненного запроса, то возможно использование КЭШа уже выполненного запроса. Кэш уникален от пользователя.
Кэширование по спецификации. При помощи хранимой процедуры, которая называется SP_EXECUTESQL можно задать запрос и его параметр и сократить время на выполнение запросов. Применение кэширования по спецификации: использование сложных запросов, использующих агрегированные функции.
Организация транзакций.
Перед началом транзакции база данных находится в согласованном состоянии.
Приложение объявляет о начале транзакции. Этот процесс может быть инициирован явно с помощью оператора BEGIN TRANSACTION. Первый же оператор Transact SQL, исполняемый после завершения предыдущей транзакции, автоматически запускает новую транзакцию. В начале транзакции в журнал не заносится никаких записей; первая запись в журнале появляется при модификации данных.
Приложение начинает производить по очереди модификации данных.
Когда приложение достигает этапа, на котором все модификации успешно завершены, и база данных снова находится в согласованном состоянии, приложение фиксирует транзакцию. На этом этапе все сделанные модификации базы данных становятся постоянными.
Если приложение обнаруживает ошибки, которые предотвращают завершение транзакции, оно выполняет отмену (откат) всех модификаций данных. Этот процесс возвращает базу данных к той точке, в которой она находилась до начала транзакции.
15. Хранимые процедуры в ms sql Server. Преимущества использования хранимых процедур. Обработка хранимых процедур. Синтаксис создания хранимых процедур
Сохраненная процедура – именованный набор операторов SQL, хранящийся на сервере.
Они позволяют:
Включать группы операторов
Вызывать другие сохраненные процедуры
Принимать входные и возвращать выходные параметры
Возвращать статус выполнения
Хранимые процедуры бывают
системные – хранятся в БД master и начинаются с префикса SP_
пользовательские сохраненные процедуры – хранятся в пользовательских БД
временные сохраненные процедуры – хранятся во временной БД tempdb и удаляются автоматически.
удаленные хранимые процедуры – хранимые процедуры других SQL Server.
расширенные системные сохраненные процедуры - в отличии от всех перечисленных представляют из себя созданные на других языках программирования и откомпилированные программы, которые могут быть вызваны из SQL Server.
Преимущества создания приложений.
Совместное использование хранимых процедур и приложений.
Хранимые процедуры
Возможная реализация дополнительных механизмов защиты. К хранимым процедурам доступ пользователь не имеет. Пользователю запрещено чтение из таблицы, но благодаря хранимой процедуре эта возможность появляется.
Автоматическое выполнение хранимых процедур при запуске SQL Server.
Улучшенная производительность хранимых процедур.
Формальные запросы на SQL
Ответ-таблица
Вводим промежуточный уровень на котором прописаны SQL запросы, что позволяет снизить сетевой трафик.
Обработка сохраненных процедур.
Выполнение,
рекомпиляция ХП. Изменилась версия
схемы, изменились индексы; изменилась
среда компиляции ХП, изменилась статистика
таблиц или индекса на который ссылается
ХП.
Оптимизация ХП:
Выясняется объем данных таблиц в которых хранятся ХП.
Выясняется наличие индексов.
При оптимальном рассмотрении условия, формируется в приложении.
Группировка.
Компиляция ХП – процесс анализа, сохраненных процедур и создание плана выполнения запроса. После план выполнения ХП помещается в кэш для повторного использования.
Синтаксис создания ХП.
Create procedure имя_процедуры
Имя процедуры не должно начинаться с префикса sp.
@параметр тип данных = значение по умолчанию output
as
операторы SQL
Вызов процедуры.
Exec имя_процедуры параметры
Project Worker
Id_project id_worker
Name name
Boss spec
Deadline status
Create proc p1
As
Select distinct worker.name from worker, project
Where worker.id_worker = project.boss