Monday, 4 March 2024

Understanding the SQL Server Query Optimiser: A Comprehensive Overview

The SQL Server Query Optimiser is a crucial component of Microsoft SQL Server, responsible for determining the most efficient way to execute a given query. The optimiser takes into consideration various factors, including the structure of the query, available indexes, statistics about the data, and the overall database schema. Here is a detailed breakdown of its functionalities, processes, and related concepts. 

1. Purpose of the Query Optimiser

The primary goals of the Query Optimiser include:

  • Generating Execution Plans: The optimiser creates a roadmap that describes how SQL Server will access the data required by the query.
  • Maximising Efficiency: By evaluating different potential execution paths, the optimiser selects the one that minimises resource utilisation, such as CPU, memory, and disk I/O.
  • Improving Response Times: A well-optimised query results in faster execution, contributing to better overall system performance.

Monday, 12 February 2024

Detecting Poor Cursor Usage in SQL Server

Undoubtedly, poor cursor usage is a critical issue to review in order to mitigate the risk of CPU bottlenecks and to assess whether cursors are the most appropriate means for processing or if set-based operations would be more effective. It is well known that set-based operations are generally more efficient; however, if you choose to use cursors, you must ensure that they do not adversely affect the performance of the database.

Wednesday, 17 January 2024

Looking deeper into the physical & logical architecture - Transaction Log File

Beyond all doubt, it is essential to have a good understanding of the Transaction Log (T-Log) so that we can diagnose unforeseen performance issues related to it and I am sure that almost everyone had at least one. The T-Log is basically a record of all transactions happening to the database. All these transactions are actually first written to the physical T-Log file, and then after a CHECKPOINT, is written to the Data File via the Lazy Writer process. Some of the uses of T-Log are: as a point in time recovery (full recovery model), to record the Start and End of each transaction, every data modification (insert, update, delete) including system SP's, DDL statements to any table including system tables, every extent and page allocation and de-allocation operation, and creation or drop of tables and indexes.

Sunday, 17 December 2023

Getting Important Information of SQL Server Backups

Regardless of the method employed to take SQL Server backups, they must be carefully monitored around the clock, particularly in critical database environments where data changes rapidly. Keeping backups current is vital, as they can save considerable time when it comes to recovering databases in the event of unforeseen incidents. Furthermore, it has been disappointing to observe numerous environments lacking a backup strategy, often with no one designated to oversee them. In this context, it is evident that these businesses were at significant risk of losing vast amounts of data and incurring substantial financial losses.

Sometimes, there is a belief that backing up the entire virtual machine is sufficient; however, this type of backup serves a different purpose than a dedicated database backup. Consequently, SQL Server database backups cannot be substituted with virtual machine backups, which can be time-consuming, inadequate, and impractical for databases. Thus, implementing an appropriate database backup strategy (for example, with Full + Differential + Log Backups) and closely monitoring them are essential tasks for ensuring the recovery process of databases.

Monday, 13 November 2023

AI-Driven SQL Server Database Management Service with Security in Mind

In the realm of SQL Server database management, the integration of artificial intelligence is transforming how organisations optimise their databases. AI enhances performance, automates processes, and significantly improves security. Below are specific applications of AI in SQL Server management and the benefits they offer.

Key Features and Benefits

  • Automation and Efficiency:
    • Intelligent Performance Monitoring: AI algorithms continuously track SQL Server performance metrics—such as CPU usage, memory consumption, and disk I/O. By identifying anomalies (e.g., slow query response times) before they affect users, SQL Server’s Intelligent Query Processing optimises performance automatically, reducing the need for manual intervention​
    • Automated Backups and Restores: With AI, SQL Server can automate backup and restore processes, ensuring they occur without manual oversight. Features like SQL Server Managed Backup utilise AI to manage backups based on workload, guaranteeing data protection​
  • Enhanced Security Measures:
    • Advanced Threat Detection: SQL Server's Advanced Threat Protection leverages machine learning to monitor for suspicious activities. It can flag unusual login attempts or data access patterns, allowing for rapid responses to potential security threats​
    • Data Encryption and Compliance: AI tools facilitate the management of Transparent Data Encryption (TDE) and Always Encrypted features, ensuring sensitive data is encrypted at rest and in transit. This is vital for compliance with regulations like GDPR​
  • Scalability and Flexibility:
    • Adaptive Resource Management: AI-driven systems in SQL Server can automatically adjust resource allocation based on workload demands. SQL Server’s Automatic Tuning feature uses AI to optimise memory and CPU allocations, ensuring performance during peak usage​
    • Cloud Integration: In cloud environments, SQL Server’s AI capabilities facilitate seamless scaling of resources. Features like Azure SQL Database offer built-in intelligence to adjust resources based on usage patterns, enhancing cost and performance management​
  • Cost-Effectiveness:
    • Reduced Operational Costs: Automating routine tasks such as indexing, query optimisation, and monitoring with AI minimises the need for extensive manual intervention. This approach saves time for database administrators and cuts operational costs​

Applications of AI in SQL Server Database Management

Applying AI to SQL Server database management allows organisations to:

  • Predictive Maintenance: AI can forecast potential database failures or performance degradation, enabling proactive measures to avoid downtime. Machine learning models can analyse historical performance data to identify patterns indicative of future issues​
  • Query Optimization: AI algorithms can analyse query performance and suggest optimisations based on historical execution patterns. This can significantly enhance application responsiveness and reduce resource consumption​
  • Anomaly Detection: By employing AI-driven analytics, SQL Server can detect anomalies in database behaviour, such as spikes in traffic or unusual data modifications, which could indicate security breaches or performance issues. This allows for timely interventions​
  • User Behaviour Analytics: AI can analyse user interactions with the database, helping to optimise performance based on actual usage patterns. This understanding can drive further enhancements in user experience and resource allocation​

These resources provide a detailed overview of how AI is transforming SQL Server database management by automating performance tuning, enhancing security, and improving overall database reliability.

  • Microsoft's Blog on AI Tuning in Azure SQL Databases: this blog discusses how AI is integrated into Azure SQL Database through features like automatic tuning. AI continuously monitors workloads, identifies performance bottlenecks, and applies tuning actions autonomously, improving performance without human intervention. It offers real-world examples of how businesses have benefited from these features. Learn more here​.
  • The Role of AI in SQL Server Database Administration: this resource outlines how AI revolutionizes the role of a SQL Server DBA. Key areas include automated performance tuning, predictive analysis for capacity planning, and anomaly detection for early problem resolution. It also covers AI’s role in index management and security. Learn more​ here.
  • Database Trends: How AI Is Impacting DBAs: this article explains the transformative role of AI in DBA tasks, such as automating routine maintenance, predictive analysis for performance optimization, and security enhancements through anomaly detection. AI allows DBAs to focus on more strategic activities. Read the full article here.​

Integrating an AI-driven SQL Server database management service not only enhances operational efficiency and performance but also fortifies data security against evolving threats. As organisations increasingly depend on SQL databases for critical functions, leveraging AI capabilities becomes essential for maintaining a competitive edge and ensuring data integrity.

Monday, 30 October 2023

On Homomorphic Encryption

Probably, one of the most exciting recent developments in the field of cryptography is the emergence of homomorphic encryption which is a type of encryption that allows computations to be performed on encrypted data while it remains encrypted, in other words, without the need to decrypt it first. This means that sensitive data can be kept confidential while still being used by third-parties.

This is achieved through the use of special encryption algorithms that preserve the mathematical structures of the plaintext data, allowing meaningful computations to be performed on the encrypted data while preventing unauthorized access to the actual plaintext data (which is never exposed and remain secure).

This technology is particularly useful in situations where privacy and security are of great importance, such as in the healthcare industry, where patient data must be kept confidential, or in financial services, where sensitive data such as bank account information needs to be processed securely. 

Tuesday, 5 September 2023

Probabilistic Estimation of the Algebraic Degree of Boolean Functions

Recently, our cryptography paper on "Probabilistic estimation of the algebraic degree of Boolean functions" was published in Springer Journal as a result of about 3 years of research: https://lnkd.in/eyEw5pce

𝐀𝐛𝐬𝐭𝐫𝐚𝐜𝐭: 𝘛𝘩𝘦 𝘢𝘭𝘨𝘦𝘣𝘳𝘢𝘪𝘤 𝘥𝘦𝘨𝘳𝘦𝘦 𝘪𝘴 𝘢𝘯 𝘪𝘮𝘱𝘰𝘳𝘵𝘢𝘯𝘵 𝘱𝘢𝘳𝘢𝘮𝘦𝘵𝘦𝘳 𝘰𝘧 𝘉𝘰𝘰𝘭𝘦𝘢𝘯 𝘧𝘶𝘯𝘤𝘵𝘪𝘰𝘯𝘴 𝘶𝘴𝘦𝘥 𝘪𝘯 𝘤𝘳𝘺𝘱𝘵𝘰𝘨𝘳𝘢𝘱𝘩𝘺. 𝘞𝘩𝘦𝘯 𝘢 𝘧𝘶𝘯𝘤𝘵𝘪𝘰𝘯 𝘪𝘯 𝘢 𝘭𝘢𝘳𝘨𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 𝘰𝘧 𝘷𝘢𝘳𝘪𝘢𝘣𝘭𝘦𝘴 𝘪𝘴 𝘯𝘰𝘵 𝘨𝘪𝘷𝘦𝘯 𝘦𝘹𝘱𝘭𝘪𝘤𝘪𝘵𝘭𝘺 𝘪𝘯 𝘢𝘭𝘨𝘦𝘣𝘳𝘢𝘪𝘤 𝘯𝘰𝘳𝘮𝘢𝘭 𝘧𝘰𝘳𝘮, 𝘪𝘵 𝘪𝘴 𝘶𝘴𝘶𝘢𝘭𝘭𝘺 𝘯𝘰𝘵 𝘧𝘦𝘢𝘴𝘪𝘣𝘭𝘦 𝘵𝘰 𝘤𝘰𝘮𝘱𝘶𝘵𝘦 𝘪𝘵𝘴 𝘥𝘦𝘨𝘳𝘦𝘦, 𝘴𝘰 𝘸𝘦 𝘯𝘦𝘦𝘥 𝘵𝘰 𝘦𝘴𝘵𝘪𝘮𝘢𝘵𝘦 𝘪𝘵. 𝘞𝘦 𝘱𝘳𝘰𝘱𝘰𝘴𝘦 𝘢 𝘱𝘳𝘰𝘣𝘢𝘣𝘪𝘭𝘪𝘴𝘵𝘪𝘤 𝘵𝘦𝘴𝘵 𝘧𝘰𝘳 𝘥𝘦𝘤𝘪𝘥𝘪𝘯𝘨 𝘸𝘩𝘦𝘵𝘩𝘦𝘳 𝘵𝘩𝘦 𝘢𝘭𝘨𝘦𝘣𝘳𝘢𝘪𝘤 𝘥𝘦𝘨𝘳𝘦𝘦 𝘰𝘧 𝘢 𝘉𝘰𝘰𝘭𝘦𝘢𝘯 𝘧𝘶𝘯𝘤𝘵𝘪𝘰𝘯 𝘧 𝘪𝘴 𝘣𝘦𝘭𝘰𝘸 𝘢 𝘤𝘦𝘳𝘵𝘢𝘪𝘯 𝘷𝘢𝘭𝘶𝘦 𝘬. 𝘐𝘧 𝘵𝘩𝘦 𝘥𝘦𝘨𝘳𝘦𝘦 𝘪𝘴 𝘪𝘯𝘥𝘦𝘦𝘥 𝘣𝘦𝘭𝘰𝘸 𝘬, 𝘵𝘩𝘦𝘯 𝘧 𝘸𝘪𝘭𝘭 𝘢𝘭𝘸𝘢𝘺𝘴 𝘱𝘢𝘴𝘴 𝘵𝘩𝘦 𝘵𝘦𝘴𝘵, 𝘰𝘵𝘩𝘦𝘳𝘸𝘪𝘴𝘦 𝘧 𝘸𝘪𝘭𝘭 𝘧𝘢𝘪𝘭 𝘦𝘢𝘤𝘩 𝘪𝘯𝘴𝘵𝘢𝘯𝘤𝘦 𝘰𝘧 𝘵𝘩𝘦 𝘵𝘦𝘴𝘵 𝘸𝘪𝘵𝘩 𝘢 𝘱𝘳𝘰𝘣𝘢𝘣𝘪𝘭𝘪𝘵𝘺 𝘥𝘵_𝘬(𝘧), 𝘸𝘩𝘪𝘤𝘩 𝘪𝘴 𝘤𝘭𝘰𝘴𝘦𝘭𝘺 𝘳𝘦𝘭𝘢𝘵𝘦𝘥 𝘵𝘰 𝘵𝘩𝘦 𝘢𝘷𝘦𝘳𝘢𝘨𝘦 𝘯𝘶𝘮𝘣𝘦𝘳 𝘰𝘧 𝘮𝘰𝘯𝘰𝘮𝘪𝘢𝘭𝘴 𝘰𝘧 𝘥𝘦𝘨𝘳𝘦𝘦 𝘬 𝘰𝘧 𝘵𝘩𝘦 𝘱𝘰𝘭𝘺𝘯𝘰𝘮𝘪𝘢𝘭𝘴 𝘸𝘩𝘪𝘤𝘩 𝘢𝘳𝘦 𝘢𝘧𝘧𝘪𝘯𝘦 𝘦𝘲𝘶𝘪𝘷𝘢𝘭𝘦𝘯𝘵 𝘵𝘰 𝘧. 𝘛𝘩𝘦 𝘵𝘦𝘴𝘵 𝘩𝘢𝘴 𝘢 𝘨𝘰𝘰𝘥 𝘢𝘤𝘤𝘶𝘳𝘢𝘤𝘺 𝘰𝘯𝘭𝘺 𝘪𝘧 𝘵𝘩𝘪𝘴 𝘱𝘳𝘰𝘣𝘢𝘣𝘪𝘭𝘪𝘵𝘺 𝘥𝘵_𝘬(𝘧) 𝘰𝘧 𝘧𝘢𝘪𝘭𝘪𝘯𝘨 𝘵𝘩𝘦 𝘵𝘦𝘴𝘵 𝘪𝘴 𝘯𝘰𝘵 𝘵𝘰𝘰 𝘴𝘮𝘢𝘭𝘭. 𝘞𝘦 𝘪𝘯𝘪𝘵𝘪𝘢𝘵𝘦 𝘵𝘩𝘦 𝘴𝘵𝘶𝘥𝘺 𝘰𝘧 𝘥𝘵_𝘬(𝘧) 𝘣𝘺 𝘴𝘩𝘰𝘸𝘪𝘯𝘨 𝘵𝘩𝘢𝘵 𝘪𝘯 𝘵𝘩𝘦 𝘱𝘢𝘳𝘵𝘪𝘤𝘶𝘭𝘢𝘳 𝘤𝘢𝘴𝘦 𝘸𝘩𝘦𝘯 𝘵𝘩𝘦 𝘥𝘦𝘨𝘳𝘦𝘦 𝘰𝘧 𝘧 𝘪𝘴 𝘢𝘤𝘵𝘶𝘢𝘭𝘭𝘺 𝘦𝘲𝘶𝘢𝘭 𝘵𝘰 𝘬, 𝘵𝘩𝘦 𝘱𝘳𝘰𝘣𝘢𝘣𝘪𝘭𝘪𝘵𝘺 𝘸𝘪𝘭𝘭 𝘣𝘦 𝘪𝘯 𝘵𝘩𝘦 𝘪𝘯𝘵𝘦𝘳𝘷𝘢𝘭 (0.288788, 0.5], 𝘢𝘯𝘥 𝘵𝘩𝘦𝘳𝘦𝘧𝘰𝘳𝘦 𝘢 𝘴𝘮𝘢𝘭𝘭 𝘯𝘶𝘮𝘣𝘦𝘳 𝘰𝘧 𝘳𝘶𝘯𝘴 𝘰𝘧 𝘵𝘩𝘦 𝘵𝘦𝘴𝘵 𝘸𝘪𝘭𝘭 𝘣𝘦 𝘴𝘶𝘧𝘧𝘪𝘤𝘪𝘦𝘯𝘵 𝘵𝘰 𝘨𝘪𝘷𝘦, 𝘸𝘪𝘵𝘩 𝘷𝘦𝘳𝘺 𝘩𝘪𝘨𝘩 𝘱𝘳𝘰𝘣𝘢𝘣𝘪𝘭𝘪𝘵𝘺, 𝘵𝘩𝘦 𝘤𝘰𝘳𝘳𝘦𝘤𝘵 𝘢𝘯𝘴𝘸𝘦𝘳. 𝘌𝘹𝘢𝘤𝘵 𝘷𝘢𝘭𝘶𝘦𝘴 𝘰𝘧 𝘥𝘵_𝘬(𝘧) 𝘧𝘰𝘳 𝘢𝘭𝘭 𝘵𝘩𝘦 𝘱𝘰𝘭𝘺𝘯𝘰𝘮𝘪𝘢𝘭𝘴 𝘪𝘯 8 𝘷𝘢𝘳𝘪𝘢𝘣𝘭𝘦𝘴 𝘸𝘦𝘳𝘦 𝘤𝘰𝘮𝘱𝘶𝘵𝘦𝘥 𝘶𝘴𝘪𝘯𝘨 𝘵𝘩𝘦 𝘳𝘦𝘱𝘳𝘦𝘴𝘦𝘯𝘵𝘢𝘵𝘪𝘷𝘦𝘴 𝘭𝘪𝘴𝘵𝘦𝘥 𝘣𝘺 𝘏𝘰𝘶 𝘢𝘯𝘥 𝘣𝘺 𝘓𝘢𝘯𝘨𝘦𝘷𝘪𝘯 𝘢𝘯𝘥 𝘓𝘦𝘢𝘯𝘥𝘦𝘳.

Monday, 13 February 2023

New Features in SQL Server 2022 for Developers

SQL Server 2022 brings a comprehensive suite of features designed to enhance the development experience, improve performance, and strengthen security. By leveraging these capabilities, developers can create more efficient, scalable, and secure applications, positioning their organisations to effectively handle modern data challenges and requirements. The focus on intelligent processing, machine learning, data integration, and robust security aligns with the evolving landscape of application development and data management.

Here’s a detailed overview of the new features in SQL Server 2022 tailored for developers.

1. Intelligent Query Processing Enhancements

Overview: SQL Server 2022 continues to build on the Intelligent Query Processing (IQP) capabilities introduced in previous versions. The aim is to enhance query performance automatically without requiring significant code changes. This means that developers can achieve better performance for their applications without extensive rewrites.

Key Feature:

  • Parameter Sensitive Plan Optimisation: This feature allows SQL Server to create and maintain multiple execution plans for the same query based on different parameter values. It identifies the most efficient plan based on runtime parameter values rather than relying solely on the static plan generated during compilation.

Example Scenario: Consider a financial application that retrieves transaction records based on different filters, such as dates and account numbers. With parameter-sensitive plan optimization, SQL Server will adaptively select the best execution plan based on the most commonly accessed account numbers or date ranges, leading to reduced execution times and better resource utilisation.

2. Built-in Machine Learning Services

Overview: SQL Server 2022 provides built-in support for machine learning services directly within the database engine. This integration allows developers to run R and Python scripts without the need for external tools.

Key Features:

  • Direct Data Access: R and Python scripts can access SQL Server data directly, allowing for real-time analysis without the need to export data to another platform.
  • Model Deployment: Developers can train and deploy machine learning models directly within SQL Server, making it easier to use these models in production applications.
  • Scalability: Since machine learning is performed on the SQL Server instance, it can take advantage of the existing hardware resources, which may lead to improved performance for large datasets.

Example Scenario: A marketing department might use machine learning to predict customer churn. By training a model directly within SQL Server, they can continuously feed it fresh data from their transactional systems, enabling real-time predictions that can drive immediate business actions, such as targeted retention strategies.

3. SQL Server Ledger

Overview: SQL Server Ledger introduces a new feature that provides blockchain-like functionality, enabling developers to build applications with strong data integrity and immutability. This is particularly useful for industries that require stringent audit trails and data verification.

Key Features:

  • Immutable Ledger Tables: These tables track all transactions in a way that prevents any modifications after they are committed, creating an audit trail that can be independently verified.
  • Cryptographic Verification: Each transaction is cryptographically hashed, and the hashes are stored in the ledger, ensuring the integrity and authenticity of the data over time.
  • Integration with Existing Systems: Developers can integrate ledger functionality with existing applications seamlessly, making it easier to adopt this technology without major architectural changes.

Example Scenario: In a healthcare application, patient treatment records can be stored in a ledger table. Each update to a patient’s treatment plan is recorded in a way that cannot be altered, providing a verifiable history that meets regulatory compliance and can be audited as needed.

4. Enhancements to Query Store

Overview: The Query Store feature is designed to help developers manage query performance by providing historical data on query execution, plan choices, and runtime statistics. The enhancements in SQL Server 2022 provide deeper insights and improved capabilities for tracking query performance over time.

Key Features:

  • Query Performance Insights: The enhancements include improved reporting capabilities, allowing developers to visualize query performance trends over time and quickly identify any regressions.
  • Automatic Plan Correction: SQL Server can automatically identify when a query's performance has degraded and revert to a previously optimal execution plan, reducing the need for manual intervention.
  • Improved Visibility into Query Execution: Developers can see detailed information about query execution times, resource consumption, and plan changes, making it easier to diagnose performance issues.

Example Scenario: A web application might experience slowdowns after a new feature is deployed. Developers can use the Query Store to identify which queries have started to perform poorly, understand the reason behind the changes, and either optimise the queries or revert to a better-performing plan.

5. Azure Synapse Link for SQL Server

Overview: Azure Synapse Link provides a seamless integration between on-premises SQL Server databases and Azure Synapse Analytics, enabling developers to perform analytics on operational data without the need to move data to the cloud.

Key Features:

  • Near Real-Time Analytics: Developers can run analytics on data as it is ingested, allowing for timely insights that can influence business decisions.
  • Simplified Data Pipelines: This integration allows for the creation of streamlined data pipelines, enabling developers to focus on analysis rather than data movement.
  • Enhanced Reporting: Azure Synapse provides powerful analytical capabilities that can be directly applied to operational data, enhancing reporting and decision-making.

Example Scenario: An e-commerce company can use Azure Synapse Link to analyse customer behaviour in real-time. By connecting their on-premises SQL Server to Azure Synapse, they can quickly generate reports on customer purchasing patterns, allowing for immediate marketing adjustments based on current trends.

6. Enhanced Security Features

Overview: SQL Server 2022 introduces several new security enhancements designed to protect sensitive data and improve overall database security posture.

Key Features:

  • Always Encrypted with Secure Enclaves: This enhancement allows certain operations to be performed on encrypted data without exposing it in plaintext, enhancing the security of sensitive information.
  • Dynamic Data Masking Enhancements: These improvements offer developers more options for controlling how sensitive data is presented to users, allowing for greater flexibility in displaying data according to user roles.
  • Security Monitoring Tools: New tools provide real-time alerts and recommendations for improving database security, helping developers maintain compliance with best practices.

Example Scenario: In a banking application, sensitive information such as customer account details can be protected using Always Encrypted. Developers can configure dynamic data masking to ensure that only authorised personnel can view sensitive data, thus enhancing customer trust and compliance with regulations.

7. SQL Server Management Studio (SSMS) Enhancements

Overview: The latest version of SQL Server Management Studio includes significant enhancements designed to improve the developer experience, making it easier to manage and develop SQL Server databases.

Key Features:

  • Improved IntelliSense: Enhanced IntelliSense capabilities help developers write SQL queries more efficiently by providing better auto-completion and suggestions.
  • Integrated Monitoring Tools: New monitoring features allow developers to track database performance metrics directly within SSMS, enabling faster troubleshooting and optimisation.
  • User-Friendly Interface: A more intuitive user interface makes it easier for developers to navigate complex database structures and management tasks.

Example Scenario: A developer working on a complex SQL query can rely on the improved IntelliSense features to quickly find the right syntax and suggestions, reducing errors and speeding up the query development process.

8. Support for UTF-8 Encoding

Overview: With the introduction of UTF-8 encoding support, SQL Server 2022 allows developers to store and manipulate multilingual data more effectively, which is crucial for global applications.

Key Features:

  • Flexible Data Storage: Developers can specify UTF-8 encoding when creating string columns, enabling efficient storage of various character sets.
  • Reduced Storage Requirements: By using UTF-8 encoding, developers can save space compared to UTF-16 encoding, particularly for texts primarily in English or other Latin-based languages.
That's all for now.
HELLO, I'M PERCY REYES! I've been working as a senior SQL Server Database Engineer for over 20 years; I'm a three-time Microsoft Data Platform MVP. I'm a cryptographer conducting research on cryptographic Boolean functions and their applications.