先日公開された 4 KB を超えるシステム ディスク セクター サイズに関連するエラーのトラブルシューティング で解説が行われていますが、Windows 11 / Windows Server 2022 に対して SQL Server をインストールしようとするとエラーが発生するという事象が報告されています。 SQL ServerでのWindows で Windows 11 / Windows Server 2022 でサポートされる SQL Server については記載されていますが、各 OS がサポートする SQL Server をインストールしようとした場合に、サポートされるバージョンの組み合わせでも環境によっては、インストール時にエラーが発生するケースがあるというのが、現在発生している問題となります。 これについては Answers の SQL Server 2019 – Wind
SQL Server で C1 をクラスター化インデックスとして設定されている次のようなテーブルがあるとします。 SQL Server のデフォルトの READ COMMITTED 分離レベルが設定されている状態に対して、次のクエリを実行した場合にどのようなロックが取得されるのかというのが本投稿の内容です。(SQL Server のデフォルトの動作であるため、READ COMMITTED SNAPSHOT ISOLATION (RCSI) は無効の状態です) C1 に対してクラスター化インデックスが設定されていますので、「C1 = 100001」のレコードに対して、Key Lock (行ロック) が取得されると思うかもしれませんが、「取得されているロックの状態で変わり、Key Lock が取得されないこともある」が答えとなります。 取得されているロックの状態によっては、上記の SELECT
Open sourcing the .NET 5 C# Language Extension for SQL Server で発表がありましたが、SQL Server 2019 から使用することができるようになった Language Extension で .NET 5 C# が使用できるようになりました。 今回のアナウンスは、次のアナウンスの続きにあたるものになるのではないでしょうか。 Open sourcing the Java language extension for SQL Server Open sourcing the R and Python language extensions for SQL Server SQL Server では、このような機能を使用したデータ分析を Advanced Analytics と呼ぶこともありますが、機能を活用することで、標準の T-
Introducing Change Data Capture for Azure SQL Databases (Public Preview) でアナウンスがありましたが、S3 以上の SQL Database ではプレビュー機能として CDC (Change Data Capture : 変更データキャプチャ) が使用できるようになりました。 CDC について結構忘れていたので、この機会にまとめておきたいと思います。 「変更の追跡」と「変更データキャプチャ」の違い SQL Server にはデータの変更とをトラッキングする機能として「変更の追跡」(Change Tracking) と「変更データキャプチャ」(CDC)という 2 種類の機能を使用することができます。 変更の追跡について (SQL Server) 変更データ キャプチャについて (SQL Server) どちらも「テーブル
Build 2021 後にアップデートの発表が続いているので、Build 前後で発表された内容を後で見るようにメモ。 Introducing the GREATEST and LEAST T-SQL functions そういえば実行プランを見ていなかったなと。。。 Improve performance of Parquet external tables using new native technology in dedicated SQL pools 現在、限定的な Public Preview での機能公開 Dedicated SQL Pool の Parquet の呼び出しで、Serverless SQL Pool のように、Hadoop (Java) ではなく、ネイティブ (C++) の呼び出しが可能となり、パフォーマンスの向上に期待できます Azure Active Dir
Build 2021 の SQL Server ベースの環境の発表については、Build 2021 のタイミングで発表された SQL Server / SQL Database のアップデート に Synapse も含めて書いてみましたが、Synapse 単体でもいくつかのドキュメントの更新が行われていますので、Synapse Analytics のみで、一度アップデートの内容を把握しておきたいと思います。 アップデートの内容 Synapse のアップデートについては、次のような内容が発表されました。 Spark 3.0 のサポート アナウンス Apache Spark 3.0 support in Azure Synapse Analytics Synapse の Spark Pool で Spark 3.0 のランタイムがプレビューとして利用可能になりました。 最終的な GA のタイミ
Build 2021 で SQL Database の新機能として Ledger (台帳) がプレビュー機能として発表されました。 Announcing Azure SQL Database ledger Ledger の初出は PASS Summit 2020 の Day2 Keynote になるのではと思いますが、実機でこの機能を検証することができるようになりましたので、試してみたいと思います。 公式ドキュメントは次の内容となるかと。 Azure SQL Database ledger documentation Quickstart: Create an Azure SQL Database with ledger enabled 最終的にはすべての地域でプレビュー機能が利用できるようですが、投稿を書いている時点では「米国中西部」の論理サーバーでのみ利用することが可能です。(SLO
2021/4/6 Public preview: Azure Monitor container insights support for Azure Arc enabled Kubernetes extension model Azure Monitor Container Insights for Azure Arc enabled Kubernetes clusters Azure Monitor のコンテナーインサイトが、Azure Arc enabled Kubernetes にプレビューで対応しました。 Azure Arc enabled data servies を動作させる為には k8s が必要となりますので、実行基盤の k8s のモニタリングについても関連情報として意識しておく必要がありますよね。 2021/4/7 Azure SQL News Update: April
SQL Server から SQL Server ベースの環境へのマイグレーションに使用することができるツールとして、Database Migration Assistant (DMA) という無償のツールが提供されています。 このツールでは、SQL Server から SQL Database へのスキーマ移行 / データ移行をサポートしており、SQL Server の環境を SQL Database に移行する際に利用することができます。 このツールの中で、SQL Database にデータを移行する際には、どのような方法を使用しているのかが理解できると、SQL Server ベースの環境の移行に活用できるのではと思い、データ移行方法を調べてみました。 SQL Server から SQL Database へのデータ移行 ツールの利用方法自体は、ドキュメントに記載されていますので割愛し
Azure の各機能を学習する場合は、各機能 (サービス) のドキュメントを確認することで学習ができます。 Azure のドキュメント : 各サービス / 機能 最近ですと Microsoft Learn を活用して機能を学習することもできますね。 Microsoft Learn 上では、SQL Server についてのコンテンツ も公開されています。 しかし、機能を活用するためのソリューションとして学習を行う場合には、各機能のドキュメント / Microsoft Learn の情報では足りなくなることもあるかと。 ソリューションとして学習する際には、どのようなドキュメントを確認すればよいかをまとめておきたいと思います。 SQL Server ベースの環境のドキュメント SQL Server ベースの環境の機能の最新情報については、どのドキュメントを見ると良いのかについてもまとめておこうか
次のアナウンスで情報が公開されていますが、SQL Database と Synapse Analytics で包括的なパーミッションによる動的データマスキング (Genular Permissions for Dynamid Data Masking) が可能となりました。 General availability: Dynamic data masking granular permissions for Azure SQL and Azure Synapse Analytics Granular Permissions for Azure SQL Dynamic Data Masking 動的データマスキング (動的データマスク) の基本的な使用については次のドキュメントから確認することができます。 動的なデータ マスキング (SQL Server 向けドキュメント) 動的データ マス
時代に即したMySQレの新機能:PLEASE句 が面白そうだったので、SQL Server で実装してみました。 構成としては次のようになっています。 SQL Server 側に通常の方法で実行されたクエリを自動的に書き換えるモジュールを入れ込む方法がぱっと思いつかなかったので、クエリを実行するクライアントと、SQL Server の間に TDS (Tabular Data Stream) の Proxy を挟んで、クライアントから実行されたクエリを強制的に書き換えて、SQL Server に流すという方式にしてみました。 TDS Proxy に対して次のようなスクリプトでクエリを実行してみます。 $con = New-Object System.Data.SqlClient.SqlConnection($env:CONSTRING) $con.Open() $sw = [System.D
SQL Server / Azure SQL Database では、行のバージョン管理 (RLV : Row Level Versioning) と呼ばれる機能を使用することができます。 通常、データのアクセス時にはロックが取得され、特定のアクセスパターンでは、検索についても同時実行性の低下につながることがあります。 SQL Server のデフォルトの設定では、検索時にもロックが取得され、更新系の処理が実行されている場合は、ロック競合により、検索がブロックされる動作が行われることがあります。 このような検索時の同時実行性の低下を抑えるため、SQL Server では行のバージョン管理という機能を使用することができます。 これは、MVCC (MultiVersion Concurrency Control) により、読み取り時にはロックを取得しないようにすることで、読み込みと書き込みが同
2021/3 の更新です。 Ignite 2021 関連の発表が多いですね。 情報を把握するために本日、一度投稿しましたが、月末にも再度更新しようと思います。 2021/3/2 (Ignite 2021 関連) こちらは、Ignite 2021 で発表があった内容となり、Ignite 2021 の内容については、Ignite 2021 のタイミングで発表された SQL Server / SQL Database のアップデート で記載していたので、本投稿では関連する URL のみを記載しておきます。 Azure Disk On-demand disk bursting for Premium SSDs now in public preview マネージド ディスクのバースト Public preview: Automatic key rotation of customer-manage
SQL Server のクエリ実行時に取得することができる実行プラン (実行計画) の中には、「コスト」という情報が出力されています。 代表的な項目としては、サブツリーの推定コストや、グラフィカルな実行プラン内のコストのコストの比率の情報となるのではないでしょうか? 本投稿では実行プラン内のコストがどのような情報を表しているものなのかの情報を確認していきたいと思います。 本投稿を書いた理由ですが「Nick’s Machine」という用語を思い出すためだったりしますが。 docs 内の記述 最初に docs 内のコストについての記述を確認してみます。 コストについては、次のドキュメントに記載がありました。 カーディナリティ推定 (SQL Server) cost threshold for parallelism サーバー構成オプションの構成 クエリ処理アーキテクチャ ガイド いくつかの記述
非クラスター化インデックスのキー項目を変更した場合、どのようなオーバーヘッドが発生するかについてまとめておきたいと思います。 DROP TABLE IF EXISTS IndexTest GO CREATE TABLE IndexTest( C1 int identity not null, C2 int, C3 char(36), CONSTRAINT PK_IndexTest PRIMARY KEY CLUSTERED(C1), INDEX NCIX_IndexTest_01 NONCLUSTERED(C2) INCLUDE(C3) ) GO SET NOCOUNT ON GO BEGIN TRAN DECLARE @cnt int = 1 WHILE (@cnt <= 100) BEGIN INSERT INTO IndexTest VALUES(@cnt % 2, NEWID
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く