AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[azure-sql-database](dba)

Martin Hope
Jesper
Asked: 2025-03-02 03:59:40 +0800 CST

Azure Db-端口阻塞1433-Macbook无法连接

  • 5

就像这样,我已将我的 Web 应用 Blazor 从 Windows 计算机移动到 Mac Pro m4

每次我尝试创建对数据库的访问权限时,都会出现错误。就像我尝试在以前版本的计算机上运行该应用程序,没有任何问题,但一旦我需要访问数据库,就会遇到问题,我无法以任何方式获得访问数据库的权限。

我在网上搜索了一下,想看看是否只有我一个人遇到这个问题。

我唯一能找到的是你的 IP 应该被添加到防火墙中。我可以告诉你,它已经完成了,而且我也多次确保它在那里。

错误:与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供程序:TCP 提供程序,错误:26 - 定位指定的服务器/实例时出错)

我尝试打开终端:nc -v xxxxx.database.windows.net 1433. 它让我成功了。

我尝试从 Azure 上的数据库上的 ODBC 和 ADO.net 复制连接字符串,但都失败了。我删除了网站上的旧连接字符串,然后添加了来自 Azure 页面的连接字符串。

不,我正在尝试通过 Blazor 页面连接到数据库。但它不允许我这样做。

Server=tcp:xxxx.database.windows.net,1433;Initial Catalog=sxxx;Persist Security Info=False;User ID=xxx;Password=xxxxx;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

因此,我还使用 EF(实体框架)与我的数据库通信。我有:

microsoft entityframeworkcore 设计,+ sqldesign 和工具

azure-sql-database
  • 1 个回答
  • 19 Views
Martin Hope
Rikalous
Asked: 2024-07-23 20:59:10 +0800 CST

读取 sys.dm_db_stats_properties 需要什么权限?

  • 5

使用 Azure SQL,我有一个由证书签名的过程,我想在其中读取表统计信息。该过程可以sys.stats正常读取,但我从使用 的查询中获得零行sys.dm_db_stats_properties,例如FROM sys.stats S CROSS APPLY sys.dm_db_stats_properties(S.object_id,S.stats_id) SP WHERE S.object_id= 123456。我已将以下权限应用于证书链接到的用户...

GRANT VIEW PERFORMANCE DEFINITION TO Maintenance_User

GRANT VIEW DATABASE PERFORMANCE STATE TO Maintenance_User

GRANT VIEW DEFINITION TO Maintenance_User

GRANT VIEW DATABASE STATE TO Maintenance_User

我是否缺少另一项 GRANT?我是否需要申请其他权限?

azure-sql-database
  • 1 个回答
  • 24 Views
Martin Hope
Nick Ryan
Asked: 2024-06-19 09:14:51 +0800 CST

sp_BlitzIndex 针对 Azure SQL 数据库运行

  • 7

我已将此 SP 添加到我的数据库中,它返回了有用的结果。我不确定的部分是使用量数字。我是 Azure SQL 的新手,但老手告诉我服务器永远不会重新启动,所以我想知道为什么使用量如此之低。这些数字看起来最多只涵盖过去 24 小时。

有人能解释一下为什么会这样吗?我希望获得更长时期的使用数据,以便真正全面地了解哪些指数的影响最大。

azure-sql-database
  • 1 个回答
  • 130 Views
Martin Hope
Henrik Staun Poulsen
Asked: 2024-05-16 21:55:45 +0800 CST

CXSYNC_PORT &“长时间运行低CPU”

  • 3

我有一个简单的查询,例如
select * from MyTable where MyTableID=@p1
sp_BlitzCache 警告我“长时间运行且 CPU 不足”。该表在 MyTableID 上有一个聚集索引,它是一个唯一标识符/GUID。

是否是由于执行语句过于频繁导致的?
是的,这就是实体框架,我们正在努力让它运行得更快,而不需要对 C# 代码进行太多更改(因为它需要很长时间)。

目前运行的 vCores = 80,这“有点”昂贵。我尝试遵循https://www.brentozar.com/blitzcache/long-running-low-cpu/,但这些指南对我来说并不是很清楚。
sp_whoisactive 显示了许多带有 Async_Network_IO 的语句
sp_BlitzFirst 显示 CXSYNC_PORT 作为主要等待类型,到目前为止,但我找不到任何关于此的信息,并且我不知道它是否与此查询或正在运行的许多其他查询之一相关。

我试图找到一个执行计划,但 sp_BlitzIndex 只显示 SQL 语句。但鉴于此,我得到了这个计划:https://www.brentozar.com/pastetheplan/ ?id=r11D40QQ0 它已在我的测试服务器上执行了 13.441.177 次,已运行 55 小时。

为什么我会收到“长时间运行 CPU 不足”的信息以及如何解决该问题?
我还看到简单的插入和更新获得了这个标签。
所有这些“长时间运行低CPU”是否都是由磁盘速度慢引起的?

azure-sql-database
  • 1 个回答
  • 64 Views
Martin Hope
Yossi Geretz
Asked: 2024-05-13 03:38:55 +0800 CST

在故障转移模式下我的只读副本数据库会发生什么情况?

  • 5

我有一些关于 Azure 故障转移的基本问题。我是故障转移新手。我一直在阅读文献,我准备尝试一下。在我尝试之前,我想更好地了解它是如何运作的。

我们在一个区域的服务器上有一个主数据库,我们将该服务器称为 DBPrime。我们最近在不同区域的服务器上创建了只读副本。我们的第一步是将读取工作负载卸载到只读副本。我们将该服务器称为 DBRead。

我们现在要采取下一步并设置故障转移。如果我正确理解文献,我不需要第三台服务器来进行故障转移。相反,我可以使用只读副本服务器作为故障转移的备用服务器吗?

这是我对触发故障转移时会发生什么的理解。请告诉我我对这些陈述的理解是否正确,或者是否理解不正确。

  1. Azure 将交换服务器名称,以便 DBRead 现在为 DBPrime,反之亦然。
  2. 新的DBPrime将从只读模式转变为读写模式。
  3. 对 DBPrime 的应用程序引用将无缝访问新的 DBPrime
  4. 引用 DBRead 的工作负载将无法访问服务器,因为该服务器当前已关闭(首先触发了故障转移)。

(我们可以单独讨论退出故障转移时会发生什么。但是,在我了解进入故障转移模式时会发生什么之前,讨论这个问题是没有意义的。)

感谢您的建议!

azure-sql-database
  • 1 个回答
  • 34 Views
Martin Hope
vacip
Asked: 2024-01-13 16:30:37 +0800 CST

大幅缩减后 Azure SQL 索引重建

  • 5

我们在 Azure SQL 数据库中有一个表,该表曾经有一个存储 pdf 文件的 nvarchar(max) 列。(外部开发人员的奇迹。)表增长到 156 GB。它有 476000 行。更改逻辑后,我们不再需要 pdf 列。删除其中数据的唯一合理方法是删除该列并重新创建该列(以防某些奇怪的进程仍在引用它)。

但是,表大小仍报告为 156 GB。我刚刚创建的备份表 (SELECT INTO) 是 128 MB,因此这似乎是数据的实际大小。

我让索引重建(在线)在聚集 PK 索引上运行过夜。它在 8 到 12 小时之间的某个时间因 TCP 错误而失败。该索引仍存在 95% 的碎片,报告的大小仍为 156 GB。

有没有解释为什么这么慢?有没有更好的办法?生产数据库、表由网站使用,必须可访问,因此不能离线执行,除非需要不到 10 分钟 - 没有人可以保证。

我可以在备份表上建立所有索引,删除原始表并重命名备份吗?这听起来很冒险(丢失在错误时间创建的记录的风险很小)。


我正在努力让 Azure 意识到它不再被使用。已分配,我对此表示同意。用过,没那么多:

在此输入图像描述

有问题的表:

在此输入图像描述

同样,问题不是保留空间,而是已使用空间。

azure-sql-database
  • 1 个回答
  • 38 Views
Martin Hope
Francesco Mantovani
Asked: 2023-06-07 04:26:14 +0800 CST

Azure SQL 数据库::SHRINKDATABASE 增加未分配空间

  • 4

我正在尝试尽可能多地压缩 Azure SQL 数据库,以便将它们放入 SQL 弹性池中。

我正在使用此查询,它允许我比较操作前后的未分配空间:

EXEC sp_spaceused @oneresultset = 1
GO

DECLARE @dbName VARCHAR(50)
SELECT @dbName = DB_NAME()
DBCC SHRINKDATABASE(@dbName, TRUNCATEONLY) 
GO

EXEC sp_spaceused @oneresultset = 1
GO

我注意到有时未分配的空间实际上是增加而不是减少:

在此输入图像描述

这种事发生过不止一次。我在网上读到,使用SHRINKDATABASE索引后可能到处都是,但这里似乎并index_size没有真正改变。旁边的那个unused只有 50MB,所以这不是问题:

在此输入图像描述

这怎么可能?

以及如何正确SHRINKDATABASE使用Azure SQL数据库?

你不应该收缩数据库不是一个有效的答复,因为在这种情况下,是的,我必须获得空间。

azure-sql-database
  • 1 个回答
  • 21 Views
Martin Hope
Francesco Mantovani
Asked: 2023-06-07 04:07:25 +0800 CST

SQL 弹性池:重建索引时“信号量超时期限已过期”

  • 4

我正在缩小 SQL 弹性池上已有的数据库。

目标是在一个独特的弹性池中容纳尽可能多的数据库。

为了做到这一点,我偶然发现了一个博客,建议运行这个查询,它基本上做了三件事:

  1. -- 步骤1:重建所有索引
  2. -- 第 2 步:收缩数据库
  3. -- 步骤3:重建所有索引

查询来了:

create or alter procedure [#ForEachTable](@inputStmt nvarchar(max))
as
begin
    set nocount, xact_abort on;
    drop table if exists [#Tables];

    select concat(quotename([S].[name]), N'.', quotename([T].[name])) as [table]
    into [#Tables]
    from [sys].[schemas] as [S]
        inner join [sys].[tables] as [T]
            on [S].[schema_id] = [T].[schema_id]
    where [T].[is_ms_shipped] = 0;

    declare tables cursor local fast_forward for select [table] from [#Tables];
    open tables;

    declare @table nvarchar(max);
    fetch next from tables into @table;

    declare @total integer = (select count(*) from [#Tables]);
    declare @space integer = len(cast(@total as nvarchar(max)));
    declare @current integer = 1;
    while @@fetch_status = 0
    begin
        declare @stmt nvarchar(max) = replace(@inputStmt, N'?', @table);
        
        declare @msg nvarchar(max) = concat(
            sysutcdatetime(), N' - ',
            N'[', right(concat(N'000', @current), @space), N'/', @total, N']: ',
            N'Executing command: "', @stmt, N'".'
        );
        raiserror(@msg, 10, 1) with nowait;

        execute [sys].[sp_executesql] @stmt = @stmt;
    
        fetch next from tables into @table;
        set @current += 1;
    end;

    close tables;
    deallocate tables;
end;
go

-- Step 1: Rebuild all the indexes
raiserror(N'First rebuild...', 10, 1) with nowait;
execute [#ForEachTable] N'alter index all on ? rebuild with (online = on);';
go

-- Step 2: Shrink the database
raiserror(N'Shrink...', 10, 1) with nowait;
declare @stmt nvarchar(max) = concat(N'dbcc shrinkdatabase (', db_id(), N')');
execute [sys].[sp_executesql] @stmt = @stmt;
go

-- Step 3: Rebuild all the indexes
raiserror(N'Final rebuild...', 10, 1) with nowait;
execute [#ForEachTable] N'alter index all on ? rebuild with (online = on);';

但几个小时后我收到此警告消息,然后 SSMS 关闭:

First rebuild...
2023-06-06 07:39:50.2128129 - [0001/1467]: Executing command: "alter index all on [dbo].[xhisto_2018] rebuild with (online = on);".
2023-06-06 07:39:50.2440440 - [0002/1467]: Executing command: "alter index all on [dbo].[Affiliate] rebuild with (online = on);".
2023-06-06 07:39:50.2596849 - [0003/1467]: Executing command: "alter index all on [dbo].[template_step] rebuild with (online = on);".
2023-06-06 07:39:50.2753131 - [0004/1467]: Executing command: "alter index all on [dbo].[mapping_monthly] rebuild with (online = on);".
2023-06-06 07:39:50.7596876 - [0005/1467]: Executing command: "alter index all on [dbo].[statement] rebuild with (online = on);".
2023-06-06 07:39:50.7753120 - [0006/1467]: Executing command: "alter index all on [dbo].[history] rebuild with (online = on);".
2023-06-06 07:39:50.7753120 - [0007/1467]: Executing command: "alter index all on [dbo].[formula_items] rebuild with (online = on);".
2023-06-06 07:39:50.7909373 - [0008/1467]: Executing command: "alter index all on [dbo].[monthly_staging] rebuild with (online = on);".
2023-06-06 07:39:50.8221873 - [0009/1467]: Executing command: "alter index all on [dbo].[sales] rebuild with (online = on);".
Msg 121, Level 20, State 0, Line 82
A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The semaphore timeout period has expired.)

Completion time: 2023-06-06T15:21:35.2092836+02:00

我正在从安装在 Azure 上的 VM 上的 SSMS 运行查询。非常肯定这不可能是连接问题。这种情况发生二分之一。

azure-sql-database
  • 1 个回答
  • 37 Views
Martin Hope
SimonGoldstone
Asked: 2023-05-12 00:03:21 +0800 CST

不同层上的地理复制?

  • 5
这个问题是从 Stack Overflow迁移过来的,因为它可以在 Database Administrators Stack Exchange 上回答。9 天前迁移 。

我们有一个 Azure SQL 数据库在英国南部的 S4 层中运行,在加拿大东部有一个在 S1 层中运行的只读副本。

关于数据同步,层级不匹配是否会影响同步性能?如果是这样,哪一层在同步速度方面“获胜”?或者同步是否发生在任何层限制之外的基础架构级别?

azure-sql-database
  • 1 个回答
  • 17 Views
Martin Hope
Desenfoque
Asked: 2023-04-26 23:46:42 +0800 CST

这是一个错误还是我在创建表时做错了什么?

  • 19

我在 Azure SQL 实例 (12.0.2000.8) 中有一个表,当我查询它时发现了这种奇怪的行为。 在此处输入图像描述

该列被定义为整数,但它不响应“WHERE”过滤器,也转换为 varchar 返回奇怪的结果。它只发生在一张表中(到目前为止)。

这里发生了什么?是错误吗?难道我做错了什么?我应该删除表并重新创建它吗?

更多信息:当我查询表时出现问题。如果我使用不同的机器和客户端,我会遇到同样的问题(它也发生在 JDBC 上)。

排序规则是 SQL_Latin1_General_CP1_CI_AS

谢谢!

azure-sql-database
  • 1 个回答
  • 1361 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve