标签: azure-sql-database

如何使用 Sql Azure 在 SSMS 对象浏览器上启用查询存储?

我正在遵循本指南:Monitoring Performance By Use the Query Store

  • 我正在使用 SSMS 2016 CTP3.2 和 Sql Azure V12
  • 我已在数据库属性上启用查询存储。
  • 我可以使用 azure 门户上的查询性能洞察。

但是,当我在 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;

sql-server azure-sql-database sql-server-2016 query-store

5
推荐指数
1
解决办法
5238
查看次数

Azuredb 数据库“tempdb”已达到其大小配额

我们在 S3 层上运行 V12 Azure 数据库实例。数据库上仍有大约 100GB 的可用空间。当使用在不同的非 azure SQL 服务器上运行的 SSIS 加载 85MB XML 文件,并将其直接插入到 azure 数据库中时,插入会在目标数据库上崩溃,并出现以下错误。

数据库“tempdb”已达到其大小配额。对数据进行分区或删除、删除索引或查阅文档以获取可能的解决方案。

tempdb 是否有任何限制或者知道为什么这可能会崩溃?85MB 的文件不可能填满数据库的剩余空间。似乎tempdb隐藏起来了,我如何监控它的使用情况?

sql-server storage azure-sql-database tempdb

5
推荐指数
1
解决办法
1万
查看次数

在 Azure 订阅之间复制 Azure SQL 数据库

切入正题,这可能吗?

我已成功复制同一订阅中的 Azure SQL 数据库。在这样做时,我通过将数据库复制到同一服务器(在订阅内)来保持简单。我使用了 Powershell 命令Add-AzureRmAccountNew-AzureRmSqlDatabaseCopy.

我尝试执行Add-AzureRmAccount两次(每个订阅一次),但这似乎用上下文中的第二个订阅替换了第一个订阅,因为New-AzureRmSqlDatabaseCopy命令报告它找不到指定的资源组(存在于源订阅中)。

综上所述,如果这是可能的,我需要执行哪些步骤/命令?

azure-sql-database

5
推荐指数
1
解决办法
8811
查看次数

使用 CROSS APPLY OPENJSON 导致 Azure 挂起

我有一个包含大约 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)

performance azure-sql-database cross-apply sql-server-2017

5
推荐指数
1
解决办法
3220
查看次数

Microsoft 中的 Azure 数据库有多安全?

我正在考虑将我的大部分数据库转移到 Azure SQL 服务器数据库,但我担心 Microsoft 将能够窥探和查看数据库内部的数据,这是绝对不能接受的。

  • Microsoft 可以查看 Azure AQL DB 中的任何数据吗?
  • Microsoft 在多大程度上影响 Azure 中的数据库?

谢谢您的帮助。

security azure-sql-database

5
推荐指数
1
解决办法
93
查看次数

读取提交的快照,读取过时的数据?

我正在运行 SQL Azure,我有以下案例。

我有两个事务W(作者)和R(读者)。两者都使用 RCSI(使用 LTM 的具有 TransactionScopes 的 .net 应用程序)运行。该R交易在同一时间启动W,并继续执行SELECT语句读取由该交易的书面表格W

通常,事务RW提交其更改后立即看到所有更改。但是,有时事务会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查询时可用的行的最新版本。但是,当有两个独立的会话时,是否可以保证?

sql-server azure-sql-database isolation-level

5
推荐指数
1
解决办法
580
查看次数

服务主体作为 SQL Active Directory 管理员,是否使用图形 API?

我希望使用服务主体作为服务器管理员,因此可以在发布管道中使用它来创建更多的 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 管理员就足够了。

我很想知道活动目录连接的底层机制是如何工作的,因为它可以帮助我进一步调查我的挑战。

sql-server azure-sql-database active-directory azure

5
推荐指数
1
解决办法
1241
查看次数

SSMS 无法连接到 Azure 数据库

我得到了一台新的 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)


现有连接被远程主机强行关闭

到目前为止我尝试过的:

  1. 卸载/重新安装 - 不。我做了两次
  2. 关闭防火墙 - 没有用。此外,我可以通过 Visual Studio 2017 很好地连接到数据库,所以这不是防火墙问题。我还使用 netstat 验证了在我通过 telnet 连接到服务器后该端口已打开。
  3. 不同的版本 - 我尝试降级到 SSMS 版本 17.9,但出现相同的错误。我正在推出 18.0(预览版 5),只是想看看是否有什么东西适合我。我可能会在这里更新这是否对我有用。
  4. 不同的数据库 - 我有两台 Azure 服务器,我也无法访问。我可以毫无问题地连接到我的本地 SQLEXPRESS 实例。

到目前为止,我的 Google-foo 在这方面让我失望了。我错过了什么?我目前的理论是 SQLEXPRESS 安装与 SSMS 安装发生冲突,但我不知道如何确定 - 这只是我读过的东西,曾经是一个问题。

更新

18 预览 …

sql-server ssms azure-sql-database

5
推荐指数
1
解决办法
1529
查看次数

如何为 Azure SQL 创建作业?

我正在尝试为我们的 Azure 服务器(用于 sql 数据库)创建一些作业。

我正在互联网上阅读它,并试图在这里找到一些问题但没有成功。

有一个链接说我需要在市场上下载一些东西。我什至无法通过寻找找到这样的应用程序。

有没有办法像我们在 SQL Server 上创建作业一样创建作业?

azure-sql-database

5
推荐指数
1
解决办法
3676
查看次数

优化通过OPENJSON提取json数据

我正在尝试优化从 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

5
推荐指数
1
解决办法
90
查看次数