|
Программирование >> Программирование баз данных
Системные переменные (которые прежде иногда именовались глобальными переменными) Системная переменная ©©connections Содержит информацию о количестве попыток установить соединение, предпринятых со времени последнего запуска СУБД SQL Server. Эта системная переменная предоставляет сведения об общем количестве всех попыток установить соединение, сделанных с тех пор, как в последний раз был выполнен запуск СУБД SQL Server. Таким образом, наиболее важная особенность этой переменной состоит в том, что она позволяет узнать, сколько было сделано попыток, а не фактически установлено соединений, кроме того, предоставляет информацию, касающуюся соединений, а не пользователей. Системная переменная ©©CONNECTIONS представляет собой счетчик, значение которого увеличивается после каждой предпринятой попытки установить соединение, независимо от того, было ли соединение установлено успешно или нет. Единственный нюанс, связанный с применением этой переменной, захслючается в том, что попытка установить соединение должна быть обнаружена сервером базы данных. Если в ходе создания соединения один из этапов этого процесса окончился неудачей, скажем, из-за наличия неправильной версии библиотеки NetLib или в результате возникновения какой-то другой сетевой проблемы, то СУБД SQL Server не получит уведомление о том, что значение ©©CONNECTIONS должно быть увеличено. Следует рассчитывать на получение информации только о таких попытках соединения, которые обнаружены сервером. При этом не имеет значения, окончилась ли эта попытка успешно или неудачно. Важно также учитывать, что речь идет о попытках установить соединение, а не войти в систему. В зависимости от приложения может бьггь предусмотрено создание нескольких соединений с сервером, но получение от пользователя регистрационной информации, по-видимому, должно осуществляться только единожды. И действительно, такая организация работы предусмотрена даже в программе Query Analyzer. После щелчка на команде меню, для вьшолнения которой требуется открыть новое окно, программа Query Analyzer автоматически создает еще одно соединение на основании той информации о пользователе, с помощью которой был осуществлен вход в систему. Для получения значения системной переменной ©©CONNECTIONS, как и многих других системных переменных, удобнее всего использовать системную хранимую процедуру sp monitor. Эта процедура, вызов которой осуществляется без параметров, предоставляет информацию о количестве соединений, загруженности процессора, а также о многих других показателях, вплоть до общего количества операций записи, выполненных в СУБД SQL Server. Системная переменная oocpubusy Системная переменная @@CPU BUSY позволяет получить информацию о том, какова продолжительность времени, измеряемая в митшисекундах, с момента последнего запуска СУБД SQL Seiver, в течение которого процессор был занят выполнением работы. Точность полученного значения зависит от степени дискретизации показаний системного таймера, которая может быть установлена по-разному, в зависимости от конкретной системы. Системная переменная @@CPU BUSY представляет собой еще один пример переменной, значение которой измеряется с момента запуска сервера. Из этого следует, что всегда можно рассчитывать на неизменное возрастание этого значения в ходе эксплуатации приложения. Таким образом, контроль над изменением значения системной переменной @@CPU BUSY позволяет, в частности, определить, какая процентная доля процессорного времени расходуется в процессе эксплуатации СУБД SQL Server. Тем не менее более реалистичный подход к решению этой задачи состоит скорее в использовании программы Performance Monitor. В целом можно сделать вывод, что системная переменная @@CPU BUSY относится к числу системных переменных такого типа, которые, хотя и могут, на первый взгляд, рассматриваться как основа для создания поистине великолепных разработок, в действительности почти не находят практического применения в большинстве приложений. Системная переменная ©©cursor rows Системная переменная @@CURSOR ROWS позволяет получить информацию о том, какое количество строк находится в настоящее время в последнем наборе данных курсора, открытом в текущем соединении. Следует подчеркнуть, что эти данные относятся к курсорам, а не к временным таблицам. Необходимо отметить, что значение этой переменной переустанавливается каждый раз после открытия нового курсора. Если требуется открыть больше одного курсора одновременно и иметь в своем распоряжении информацию о том, сколько строк находится в наборе данных каждого курсора, то необходимо перед открытием каждого следующего курсора переносить значение системной переменной @@CURSOR ROWS в какую-то промежуточную переменную. Безусловно, системная переменная @@CURS0R R0WS может использоваться для установки счетчика для управления циклом WHILE, применяемого для обработки набора данных курсора, но автор настоятельно рекомендует не придерживаться такой практики. Дело в том, что значение, содержащееся в переменной ®@CURSOR ROWS, может изменяться в зависимости от типа курсора и от того, происходит ли заполнение набора данных курсора программным обеспечением SQL Server асинхронно. Способ управления циклом с использованием системной переменной @@FETCH STATUS является гораздо более надежным и к тому же не более сложным. Если значение, содержащееся в системной переменной @@CURSOR ROWS, представляет собой отрицательное число больше -1, то, по-видимому, применяется асинхронный курсор, а отрицательное число обозначает количество строк, созданных до сих пор в курсоре. С другой стороны, если полученное значение равно -1, то курсор представляет собой динамический курсор, в котором количество строк постоянно изменяется. Возвращаемое значение, равное О, свидетельствует о том, что либо курсор не открыт, либо последний открытый курсор уже закрыт. Наконец, любое положительное число указывает количество строк в курсоре. Чтобы создать асинхронный курсор, устлновите с помощью процедуры sp con figure значение параметра cursor threshold больше 0. В таком случае посяе превышения указанного параметра системной переменной @@CURSOR ROWS присваивается значение количества строк в наборе данных курсора, а остальные строки помещаются в курсор асинхронно. Системная переменная @@datefirst Системная переменная @@datefirst содержит числовое значение, которое соответствует дню недели, рассматриваемому в системе как первый день недели. По умолчанию в Соединенньк Штатах применяется значение 7, которое соответствует воскресенью. Применяемые числовые обозначения дней недели приведены ниже. 1. Понедельник (рассматривается как первый день недели в большинстве стран мира). 2. Вторник. 3. Среда. 4. Четверг. 5. Пятница. 6. Суббота. 7. Воскресенье. Системная переменная ©©datefirst может применяться для решения проблем локализации, связанных с учетом национальных традиций того государства, в котором применяется система. С ее помощью может быть, например, правильно выбрана компоновка календаря или упорядочена другая информация, в которой учитываются дни недели. Для изменения параметра настройки конфигурации, которой обозначает первый день недели, используется функция SET с параметром DATEFIRST. Системная переменная @@dbts Системная переменная @@dbts содержит информацию о последней используемой временной отметке для текущей базы данных. На первый взгляд кажется, что системная переменная ©©dbts по CBOCNry назначению почти не отличается от системной переменной ©©identity, которая содержит последнее идентификационное значение, установленное системой (но переменная @@dbts позволяет определить последнюю временн)ю отметку, а не последнее идентификационное значение). При использовании переменной ©@dbts необходимо учитывать перечисленные ниже особенности. Значение этой переменной изменяется в результате модификации любых данных в базе данных, а не только данных таблицы, с которой работает пользователь. На значении переменной отражаются любые изменения временной отметки в базе данных, а не только изменения, происходящие в текущем соединении.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |