Новые функции обработки битов
- 6 мин
SQL Server 2022 представляет новые функции для обработки битов, что упрощает работу с двоичными данными. Среды Интернета вещей , криптографические приложения, сжатие данных и сетевые протоколы являются общими сценариями, которые используются при обработке битов.
Эти функции обеспечивают эффективный и эффективный способ управления двоичными данными и помогают выявлять проблемы и принимать более эффективные решения в разных ситуациях.
ПОЛУЧИТЬ_БИТ
Функция GET_BIT
извлекает значение определенного бита в двоичном значении. Это полезно при доступе к отдельным битам в двоичных структурах данных, таких как состояния датчика в системах Интернета вещей.
Количество_битов
Функция BIT_COUNT
подсчитывает количество битов, установленных в 1 в двоичном значении. Полезно проанализировать плотность данных или определить, сколько датчиков имеют проблемы в системе мониторинга.
LEFT_SHIFT и RIGHT_SHIFT
Функции LEFT_SHIFT
и RIGHT_SHIFT
перемещают биты двоичного значения влево или вправо на указанное количество позиций. Они полезны для операций, таких как добавление новых датчиков в существующие наборы данных или работа с сжатием данных и сетевыми протоколами.
УСТАНОВИТЬ_БИТ
Функция SET_BIT
задает значение определенного бита в двоичном значении. Это полезно для изменения определенных битов в двоичных структурах данных, таких как имитация проблем датчика или переключение между различными состояниями в среде Интернета вещей.
Упрощение манипуляций с битами в SQL-запросах с использованием функций GET_BIT и BIT_COUNT.
Представьте себе, что вы являетесь DBA производственной компании. Менеджер, отвечающий за сеть устройств Интернета вещей, обратился к вам за помощью. Они должны определить, какие датчики в каких устройствах испытывают проблемы. База данных Интернета вещей содержит таблицу DeviceSensorMonitor, которая собирает данные о состоянии датчика с различных устройств. На каждом устройстве восемь датчиков, и для устройств без проблем ожидаемое состояние - 0x00. В таблице есть следующие значения для устройств, у которых в настоящее время возникают проблемы:
DeviceId | Дата и время сбора | SensorStatus |
---|---|---|
235112 | 2/11/2023 12:51:22.421 | 0x42 |
412231 | 2/11/2023 12:51:31.860 | 0x80 |
795159 | 2/11/2023 12:51:48.592 | 0xFD |
948705 | 2/11/2023 12:51:56.321 | 0x05 |
В этом примере создадим образец таблицы базы данных и заполните ее. Очевидно, что в реальном мире база данных уже существует и будет автоматически заполнена вашими устройствами Интернета вещей.
Важный
Всегда убедитесь, что вы используете тестовый SQL Server для выполнения этих примеров и не запускайте их на рабочем сервере.
CREATE DATABASE SQL2022Workshop_BitDB;
GO
USE SQL2022Workshop_BitDB;
GO
CREATE TABLE DeviceSensorMonitor (DeviceId INT, CollectionDateTime DATETIME, SensorStatus VARBINARY(2));
GO
INSERT INTO DeviceSensorMonitor VALUES
(235112 , '2/11/2023 12:51:22.421' , 0x42),
(395862 , '2/11/2023 12:51:22.421' , 0x00),
(412231 , '2/11/2023 12:51:31.860' , 0x80),
(078930 , '2/11/2023 12:51:22.421' , 0x00),
(795159 , '2/11/2023 12:51:48.592' , 0xFD),
(009492 , '2/11/2023 12:51:22.421' , 0x00),
(948705 , '2/11/2023 12:51:56.321' , 0x05);
GO
Используя новые функции обработки битов в SQL Server 2022, вы можете легко проверить состояние каждого датчика и подсчитать количество датчиков с проблемами. Для получения данных, необходимых диспетчеру этажей, выполните следующие запросы в SQL Server Management Studio (SSMS).
SELECT DeviceId,
SensorStatus,
GET_BIT(SensorStatus, 7) AS Sensor8,
GET_BIT(SensorStatus, 6) AS Sensor7,
GET_BIT(SensorStatus, 5) AS Sensor6,
GET_BIT(SensorStatus, 4) AS Sensor5,
GET_BIT(SensorStatus, 3) AS Sensor4,
GET_BIT(SensorStatus, 2) AS Sensor3,
GET_BIT(SensorStatus, 1) AS Sensor2,
GET_BIT(SensorStatus, 0) AS Sensor1,
BIT_COUNT(SensorStatus) AS NumberOfIssues
FROM DeviceSensorMonitor
WHERE SensorStatus > 0x00
Давайте очистим образец базы данных, который мы создали.
USE tempdb;
GO
DROP DATABASE SQL2022Workshop_BitDB;
GO
Результаты:
DeviceId | SensorStatus | Датчик8 | Датчик7 | Датчик6 | Датчик5 | Датчик4 | Датчик3 | Датчик2 | Датчик1 | КоличествоПроблем |
---|---|---|---|---|---|---|---|---|---|---|
235112 | 0x42 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 2 |
412231 | 0x80 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
795159 | 0xFD | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 7 |
948705 | 0x05 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 2 |
При использовании этих функций для реальных сценариев, таких как мониторинг данных датчика в среде Интернета вещей, можно быстро выявлять проблемы и принимать более обоснованные решения. Добавление этих функций в SQL Server 2022 делает его еще более мощным и универсальным средством для управления и анализа данных.