Reload Mind
А еще я в нее ем.

Идентификатор GUID — это уникальное двоичное число, причем никакие два компьютера во всем мире не создадут два одинаковых значения GUID. Идентификаторы GUID в первую очередь используются для назначения идентификаторов, которые должны быть уникальными в рамках сети, содержащей много компьютеров в различных расположениях.
Значение идентификатора GUID для столбца uniqueidentifier обычно формируется одним из следующих способов.
+ В инструкции Transact-SQL, пакете или сценарии с помощью вызова функции NEWID.
+ В коде приложения путем вызова функции API-интерфейса или метода, возвращающего идентификатор GUID.

Тип данных идентификатора GUID в SQL Server представлен типом данных uniqueidentifier, который хранит 16-байтовое двоичное значение. Идентификатор GUID — это двоичное число, главным образом используемое для назначения идентификаторов, которые должны быть уникальными в рамках сети с большим числом компьютеров в различных расположениях.

Так как значения GUID являются длинными и непрозрачными, они не несут никакой смысловой нагрузки для пользователей. Если в качестве ключевых значений используются случайные значения GUID и вставляется много строк, то это порождает увеличение операций ввода-вывода в индексах, что может отрицательно сказаться на производительности. Кроме того, значения GUID относительно велики в сравнении с другими типами данных. В целом значения GUID рекомендуется использовать только для узкого круга сценариев, для которых не подходят другие типы данных.



datasql.ru/basesql/12.htm
Хранимые процедуры представляют собой группы связанных между собой операторов SQL, применение которых делает работу программиста более легкой и гибкой, поскольку выполнить хранимую процедуру часто оказывается гораздо проще, чем последовательность отдельных операторов SQL. Хранимые процедуры представляют собой набор команд, состоящий из одного или нескольких операторов SQL или функций и сохраняемый в базе данных в откомпилированном виде. Выполнение в базе данных хранимых процедур вместо отдельных операторов SQL дает пользователю следующие преимущества:
1-необходимые операторы уже содержатся в базе данных;
2-все они прошли этап синтаксического анализа и находятся в исполняемом формате;
3-перед выполнением хранимой процедуры SQL Server генерирует для нее план исполнения, выполняет ее оптимизацию и компиляцию;
4-хранимые процедуры поддерживают модульное программирование, так как позволяют разбивать большие задачи на самостоятельные, более мелкие и удобные в управлении части;
5-хранимые процедуры могут вызывать другие хранимые процедуры и функции;
6-хранимые процедуры могут быть вызваны из прикладных программ других типов;
7-как правило, хранимые процедуры выполняются быстрее, чем последовательность отдельных операторов;
8-хранимые процедуры проще использовать: они могут состоять из десятков и сотен команд, но для их запуска достаточно указать всего лишь имя нужной хранимой процедуры. Это позволяет уменьшить размер запроса, посылаемого от клиента на сервер, а значит, и нагрузку на сеть.

Хранимые процедуры существуют независимо от таблиц или каких-либо других объектов баз данных. Они вызываются клиентской программой, другой хранимой процедурой или триггером. Разработчик может управлять правами доступа к хранимой процедуре, разрешая или запрещая ее выполнение. Изменять код хранимой процедуры разрешается только ее владельцу или члену фиксированной роли базы данных. При необходимости можно передать права владения ею от одного пользователя к другому.

В SQL Server имеется несколько типов хранимых процедур.
+Системные хранимые процедуры предназначены для выполнения различных административных действий. Практически все действия по администрированию сервера выполняются с их помощью. Можно сказать, что системные хранимые процедуры являются интерфейсом, обеспечивающим работу с системными таблицами, которая, в конечном счете, сводится к изменению, добавлению, удалению и выборке данных из системных таблиц как пользовательских, так и системных баз данных. Системные хранимые процедуры имеют префикс sp_, хранятся в системной базе данных и могут быть вызваны в контексте любой другой базы данных.
+Пользовательские хранимые процедуры реализуют те или иные действия. Хранимые процедуры – полноценный объект базы данных. Вследствие этого каждая хранимая процедура располагается в конкретной базе данных, где и выполняется.
+Временные хранимые процедуры существуют лишь некоторое время, после чего автоматически уничтожаются сервером. Они делятся на локальные и глобальные. Локальные временные хранимые процедуры могут быть вызваны только из того соединения, в котором созданы. При создании такой процедуры ей необходимо дать имя, начинающееся с одного символа #. Как и все временные объекты, хранимые процедуры этого типа автоматически удаляются при отключении пользователя, перезапуске или остановке сервера. Глобальные временные хранимые процедуры доступны для любых соединений сервера, на котором имеется такая же процедура. Для ее определения достаточно дать ей имя, начинающееся с символов ##. Удаляются эти процедуры при перезапуске или остановке сервера, а также при закрытии соединения, в контексте которого они были созданы.

Процедура sp_executesql предлагает следующие дополнительные преимущества.

Так как фактический текст инструкции Transact-SQL между выполнениями не изменяется, оптимизатор запросов должен сопоставить инструкцию Transact-SQL из второго выполнения с планом выполнения, созданным для первого выполнения. Следовательно, компиляция второй инструкции SQL Server не обязательна.

Строка Transact-SQL строится только один раз.

Целочисленный параметр определен в собственном формате. Преобразование в Юникод не требуется.

@темы: околокомпьютерное, на почту