Sql-сервер - Большая Энциклопедия Нефти и Газа, статья, страница 1
Человек, признающий свою ошибку, когда он не прав, - мудрец. Человек, признающий свою ошибку, когда он прав, - женатый. Законы Мерфи (еще...)

Sql-сервер

Cтраница 1


SQL-сервер создает целевую блокировку, планируя запросить исключающую или разделяемую блокировку страницы. Целевая блокировка сообщает другим процессам, что они не могут установить свои исключающие блокировки для указанного ресурса.  [1]

SQL-сервер запрашивает блокировки на уровне страниц в самых различных ситуациях, начиная с простых операторов SELECT и заканчивая крупномасштабными операциями изменения данных.  [2]

SQL-сервер может освободить журнал транзакций только до начала самой старой незавершенной транзакции. Это может привести к замораживанию системы, и такое состояние будет продолжаться до тех пор, пока выполняемая транзакция не закроется. Чаще всего причиной таких ситуаций являются программы приложений, позволяющие пользователям бесконечно долго оставлять транзакции открытыми. Предотвратить такое явление можно, руководствуясь следующим правилом: начало и конец транзакции не должны быть разделены вводом информации пользователем. Лучше разрешить пользователю ввести данные, а затем начать и закончить транзакцию.  [3]

Почему SQL-сервер при модификации данных выбирает именно такой подход. Существует ряд ситуаций, для которых этот метод является наилучшим, но чаще всего отложенное обновление применяется, если объем данных точно неизвестен.  [4]

Теперь SQL-сервер сохраняет активной разделяемую блокировку для таблицы customer flights активной до окончания всей транзакции. Это означает, что блокировка остается даже при обращении к другим таблицам. Этот режим сильно ограничивает работ) параллельных пользователей, и при неправильном применении он чреват многочисленными проблемами.  [5]

Когда SQL-сервер записывает информацию на основной диск, происходит запись и на вторичный диск, что обеспечивает синхронизацию обоих дисководов. С точки зрения функционирования выполнение операций записи немного замедляется, так как система теперь должна выполнить две таких операции, а не одну. Однако ускоряется считывание данных, потому что информацию можно найти на двух дисках.  [6]

Хотя SQL-сервер может применять кэширование памяти для повторного использования хранимых процедур, он, тем не менее, должен создавать новый план запроса, если какой-либо пользователь уже работает с существующим планом. Это означает, что хранимые процедуры не являются реентерабельными. Предположим, что один из пользователей - Энди - начинает работать с хранимой процедурой add new customer. Машина SQL-сервера считывает эту процедуру в кэш хранимых процедур, давая возможность другим пользователям выбирать ее из памяти. Теперь представим себе, что Даниелла хочет выполнить ту же самую хранимую процедуру. Она может выбрать ее из кэша, что устранит ненужные операции дискового ввода / вывода, однако и в этом случае SQL-сервер должен сгенерировать новый план запроса, так как Энди использует свою копию плана. Когда Даниелла заканчивает выполнение хранимой процедуры, ее план запроса могут использовать другие, но в каждый момент времени план может применяться только одним пользователем.  [7]

Когда SQL-сервер производит запись в журнал транзакций.  [8]

Когда SQL-сервер автоматически восстанавливает информацию, в конце он обычно выполняет процесс контрольной точки. Если предварительно не устанавливать флаг No checkpoint on Recovery ( не выполнять контрольную точку после восстановления) в true ( истина), то процесс восстановления записывает контрольную точку. Когда этот флаг установлен в true, SQL-сервер после завершения восстановления ке выполняет контрольную точку.  [9]

Когда SQL-сервер взаимодействует с другими базами данных, он использует протокол TDS ( Tabular Data Stream - поток табличных данных), который является очень эффективным средством связи баз данных. Показатель NET - Network Reads / sec ( число сетевых операций чтения / сек) контролирует число TDS-пакетов, считываемых SQL-сервером за одну секунду.  [10]

Иногда SQL-сервер выступает в качестве разработчика и автоматически создает рабочие таблицы. При этом пользователь не контролирует создаваемые рабочие таблицы - за исключением доработки запросов и изменения структуры индексов базы данных. Это означает также, что пользователь не может задавать какие-либо индексы для таких таблиц. SQL-сервер часто сам устанавливает индексы на ключевых столбцах рабочих таблиц, созданных неявным образом.  [11]

12 Сравнение памяти системы и памяти SQL-сервера. [12]

Память SQL-сервера используется для хранения данных, хранимых процедур и других внутренних структур. Соотношение между памятью данных и памятью хранимых процедур устанавливает администратор. Оставшаяся часть будет отведена страницам данных и индексным страницам.  [13]

Администраторы SQL-сервера часто попадают в затруднительное положение, пытаясь узнать о текущем состоянии транзакций. Не забывайте о том, что длительные или бесконечные транзакции порождают множество неприятностей в работе хорошо отлаженной системы. При этом могут появляться ложные сообщения о длительных транзакциях, ухудшаться характеристики системы и переполняться журналы транзакций. К счастью, существует команда DBGC OPENTRAN, с помощью которой можно получить более подробную информацию о самой старой активной транзакции ( oldest active transaction), которая во многих случаях и является причиной неприятностей. Предположим, возвращается сообщение о том, что журнал транзакций базы данных largo заполнен.  [14]

Таблицы SQL-серверов могут хранить больше данных, чем локальные таблицы. Кроме того, локальные таблицы очень больших размеров ( содержащие десятки тысяч строк) более подвержены сбоям и нарушениям в структуре хранимой информации.  [15]



Страницы:      1    2    3    4