我正在遵循本指南:Monitoring Performance By Use the Query Store
但是,当我在 SMSS 2016 CTP3.2 上打开 Azure 数据库并展开数据库树时,查询存储/回归查询或任何其他选项都可用。
我希望能够进行 IO 消耗最多的查询并分析执行计划。
我还需要启用什么吗?
sys.databases中相关的is_query_store_on列显示 0,但数据库属性表明它已启用。我执行了,但is_query_store_on仍然保持在 0。ALTER DATABASE <DB> SET QUERY_STORE = ON;
以下查询:
SELECT
actual_state, actual_state_desc, readonly_reason,
current_storage_size_mb, max_storage_size_mb
FROM sys.database_query_store_options;
Run Code Online (Sandbox Code Playgroud)
显示实际状态= 2;
我们在 S3 层上运行 V12 Azure 数据库实例。数据库上仍有大约 100GB 的可用空间。当使用在不同的非 azure SQL 服务器上运行的 SSIS 加载 85MB XML 文件,并将其直接插入到 azure 数据库中时,插入会在目标数据库上崩溃,并出现以下错误。
数据库“tempdb”已达到其大小配额。对数据进行分区或删除、删除索引或查阅文档以获取可能的解决方案。
tempdb 是否有任何限制或者知道为什么这可能会崩溃?85MB 的文件不可能填满数据库的剩余空间。似乎tempdb隐藏起来了,我如何监控它的使用情况?
切入正题,这可能吗?
我已成功复制同一订阅中的 Azure SQL 数据库。在这样做时,我通过将数据库复制到同一服务器(在订阅内)来保持简单。我使用了 Powershell 命令Add-AzureRmAccount和New-AzureRmSqlDatabaseCopy.
我尝试执行Add-AzureRmAccount两次(每个订阅一次),但这似乎用上下文中的第二个订阅替换了第一个订阅,因为New-AzureRmSqlDatabaseCopy命令报告它找不到指定的资源组(存在于源订阅中)。
综上所述,如果这是可能的,我需要执行哪些步骤/命令?
我有一个包含大约 800 万行的表,其架构为:
CREATE TABLE [dbo].[Documents](
[Id] [uniqueidentifier] NOT NULL,
[RemoteId] [int] NOT NULL,
[Json] [nvarchar](max) NULL,
[WasSuccessful] [bit] NOT NULL,
[StatusCode] [int] NULL,
[Created] [datetime2](7) NULL,
CONSTRAINT [PK_Documents] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[Documents] ADD CONSTRAINT [DF_Documents_Id] DEFAULT (newsequentialid()) FOR [Id]
GO
ALTER TABLE [dbo].[Documents] ADD CONSTRAINT [DF_Documents_Created] DEFAULT (getdate()) FOR [Created]
GO
Run Code Online (Sandbox Code Playgroud)
json 文件的结构为
{
"Id": 1,
"Data": [
{ …Run Code Online (Sandbox Code Playgroud) 我正在考虑将我的大部分数据库转移到 Azure SQL 服务器数据库,但我担心 Microsoft 将能够窥探和查看数据库内部的数据,这是绝对不能接受的。
谢谢您的帮助。
我正在运行 SQL Azure,我有以下案例。
我有两个事务W(作者)和R(读者)。两者都使用 RCSI(使用 LTM 的具有 TransactionScopes 的 .net 应用程序)运行。该R交易在同一时间启动W,并继续执行SELECT语句读取由该交易的书面表格W。
通常,事务R在W提交其更改后立即看到所有更改。但是,有时事务会R看到没有事务最近提交的状态W。
问题是:
RCSI 是否保证R始终看到表的最新状态?根据:https :
//docs.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-locking-and-row-versioning-guide?view=
sql-server- 2017读提交应该总是获取在执行SELECT查询时可用的行的最新版本。但是,当有两个独立的会话时,是否可以保证?
我希望使用服务主体作为服务器管理员,因此可以在发布管道中使用它来创建更多的 Active Directory 用户。
我成功地将服务主体设置为服务器管理员 * 并使用访问令牌连接到数据库,因此服务主体身份验证工作正常,这非常好,也是一个有趣的挑战。
*编辑:AAD 服务器管理员是通过 ARM 模板创建的,特别是如果您尝试通过门户手动创建,则无法选择服务主体作为管理员用户。但有趣的是,您可以在使用 ARM 创建后在门户中看到服务主体名称正常。并且您可以使用 AAD 身份验证成功登录,因此看起来服务器主体管理员工作正常。
但是,在创建更多用户时,他们似乎永远不会发现错误:
“此时找不到校长'name here'。请稍后再试。”
但是,当以我自己的身份登录时,我可以很好地创建其他用户。
这让我想到 SQL Server 是否使用某种 Active Directory 模拟来验证后续用户/服务主体是否存在?
如果我授予我的服务主体访问 Graph API 的权限,是否会授予它足够的权限?如果是这样,最低限度的权利是什么?
我还看到 Azure SQL Server 在后台创建了一个托管服务标识,所以我想知道这是否也在起作用?
我还在托管实例上看到他们明确要求具有 AAD 权限的服务主体连接到 AAD - 我认为这就像 Azure SQL Server 的 MSI?但是 Azure SQL Server 没有提到这一点,AAD 管理员就足够了。
我很想知道活动目录连接的底层机制是如何工作的,因为它可以帮助我进一步调查我的挑战。
我得到了一台新的 Windows 10 机器并安装了最新版本的 SQLEXPRESS,然后安装了最新版本的 SSMS (17.9.1)。
尝试连接到我的 Azure 数据库时,出现以下错误。
连接到“mydb.database.windows.net”时出错。
- - - - - - - - - - - - - - - 附加信息:
无法检索此请求的数据。(Microsoft.SqlServer.Management.Sdk.Sfc)
执行 Transact-SQL 语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionInfo)
从服务器接收结果时发生传输级错误。(提供程序:TCP 提供程序,错误:0 - 远程主机强行关闭了现有连接。)(Microsoft SQL Server,错误:10054)
现有连接被远程主机强行关闭
到目前为止我尝试过的:
到目前为止,我的 Google-foo 在这方面让我失望了。我错过了什么?我目前的理论是 SQLEXPRESS 安装与 SSMS 安装发生冲突,但我不知道如何确定 - 这只是我读过的东西,曾经是一个问题。
更新
18 预览 …
我正在尝试为我们的 Azure 服务器(用于 sql 数据库)创建一些作业。
我正在互联网上阅读它,并试图在这里找到一些问题但没有成功。
有一个链接说我需要在市场上下载一些东西。我什至无法通过寻找找到这样的应用程序。
有没有办法像我们在 SQL Server 上创建作业一样创建作业?
我正在尝试优化从 REST API 获得的值的提取,该 API 在数组中返回 json 值。
这是一个最小、完整且可验证的示例,它准确地反映了我在做什么。
USE tempdb;
DROP TABLE IF EXISTS dbo.json_test;
CREATE TABLE dbo.json_test
(
json_test_id int NOT NULL
IDENTITY(1,1)
, some_uniqueidentifier uniqueidentifier NULL
, some_varchar varchar(100) NULL
, the_json nvarchar(max) NULL
);
INSERT INTO dbo.json_test (some_uniqueidentifier, some_varchar, the_json)
SELECT
some_uniqueidentifier = NEWID()
, some_varchar = CONVERT(varchar(100), CRYPT_GEN_RANDOM(64), 1)
, the_json = (
SELECT st.*
FROM sys.tables st
CROSS JOIN sys.tables st2
WHERE st.object_id = t.object_id FOR JSON AUTO
)
FROM sys.tables t;
;WITH src …Run Code Online (Sandbox Code Playgroud) sql-server azure-sql-database cross-apply json sql-server-2019
sql-server ×6
cross-apply ×2
azure ×1
json ×1
performance ×1
query-store ×1
security ×1
ssms ×1
storage ×1
tempdb ×1