我正在将应用程序移至 Azure,并且需要为单个表中的几列实现 PCI 合规性。我意识到我可以在存储数据之前对其进行加密,但我想知道 SQL Azure 中是否有一个功能可以为我管理其中的一部分。我读过一些,但我不确定是什么;或者不是;SQL Azure 中支持。
我已经阅读了使用 SQL Server(而不是 SQL Azure)的模式,其中在视图后面应用了数据加密和解密。在这种情况下,所有客户端都通过视图访问数据,因此从加密/解密过程中抽象出来。这么一说,好像有点危险。
我对如何处理这种情况的任何和所有建议持开放态度。
我有一个这样的 SQL 查询:
SELECT A, B, (CASE WHEN C=0 THEN 0 ELSE 1 END), COUNT(D)
FROM SomeTable
GROUP BY A, B, (CASE WHEN C=0 THEN 0 ELSE 1 END)
Run Code Online (Sandbox Code Playgroud)
在庞大的数据集上,实际执行计划大部分时间都归因于对应于逻辑操作 Aggregate和物理操作 HashMatch 的节点。
更改列和条件在列表中的GROUP BY列出顺序会影响性能吗?
我正在尝试更改 Azure 存储中表的主键。计划是创建一个新表,移动数据并删除旧表。问题是我需要所有约束名称都与旧的相同。
因此,在重命名旧表和该表上的所有约束之前,我无法创建新表。我已经在约束上尝试过 sp_rename,但没有运气:
sp_rename 'PK_dbo.ContactSessions', 'PK_dbo.ContactSessions_old', 'OBJECT'
Run Code Online (Sandbox Code Playgroud)
给我:
Either the parameter @objname is ambiguous or the claimed @objtype (OBJECT) is wrong.
Run Code Online (Sandbox Code Playgroud)
如果我像这样运行 sp_rename:
sp_rename 'PK_dbo.ContactSessions', 'PK_dbo.ContactSessions_old'
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
No item by the name of 'PK_dbo.ContactSessions' could be found in the current database 'testing_only', given that @itemtype was input as '(null)'.
Run Code Online (Sandbox Code Playgroud)
我看过这个帖子:如何更改 SQL Azure 上的现有主键? 并尝试
create clustered index [NEW_INDEX_NAME] on [ContactSessions] ([ContactSessionId])
with (drop_existing=on);
Run Code Online (Sandbox Code Playgroud)
并得到错误:
Could not find any index named 'NEW_INDEX_NAME' for table 'ContactSessions'.
Run Code Online (Sandbox Code Playgroud)
还有其他选项可以更改索引名称吗?
我知道这是可能的,因为我可以右键单击 SSMS …
我正在尝试使用 SQL Server Management Studio 2014 中的“将数据库部署到 Windows Azure SQL 数据库”任务将现有的 SQL Server 2005 数据库测试部署到 SQL Azure 中。

当向导启动时,它有不正确(过时)的可用数据库设置:

SQL Azure 不再使用“Web”和“业务”模型,当我尝试执行部署时它失败并显示错误消息
指定的服务目标“业务”无效。(Microsoft SQL Server,错误:40804)
当我尝试使用数据库的 .bacpac 运行“导入数据层应用程序”时收到相同的错误。该界面的设置也很旧。
SSMS 似乎正在使用较旧的部署向导。我该如何纠正?
编辑:
我在 Azure 上启动了一个 SQL Server 2014 VM 并尝试执行相同的任务。我观察到 SSMS 的 VM 版本具有比我的 SSMS 本地副本(左)更新的版本号(右):

但是,我没有看到来自 Windows Update 的待处理更新。
我有一个我删除的数据库,它曾经有一个“管理”选项,可以打开在线 sql 管理门户。
我创建了一个新数据库,现在我没有“管理”选项了。
当我尝试使用我的新服务器名称访问相同的 URL 时,我无法连接。
我在使用实体框架连接到这个新数据库时也遇到了问题。错误信息:
与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

我们在 SQL Azure v12 标准/S2 服务层上,对性能不满意,所以我试图衡量瓶颈在哪里。我意识到我们可能会达到 S2 服务层的限制。S2 有 50 个 DTU 和每分钟 2,570 个事务的限制。
内存压力:
我查看了sys.dm_exec_query_memory_grants并且没有未决的内存授予,并且正在授予请求的内存。页面预期寿命约为 600。
DTU
平均 DTU 似乎没有超过 50% 的单元化。avg_cpu_percent 和 avg_data_io_percent 很少超过 50%。avg_memory_usage_percent 保持在 99%。我从sys.dm_db_resource_stats
每秒事务数
如何衡量 SQL Azure 中的事务/秒?sys.dm_os_performance_counters事务/秒的 DMV没有用户数据库的任何值。它具有系统数据库的值。
我们的 SQL Azure 数据库包含一个SELECT每天运行一次的大量语句。沉重的SELECT语句不包含锁定提示。最近我们观察到生产中的一些停顿,这sys.dm_exec_requests是那段时间显示的内容......运行时间最长的查询是SELECT具有PAGEIOLATCH_SH等待类型的繁重查询。接下来是其他查询——最常见的INSERT是具有PAGEIOLATCH_EX等待类型的语句,所有语句都运行了几十秒而不是立即完成。所以基本上,SELECT只有重才会干扰其他查询。
我该如何解决?我可以接受SELECT缓慢运行的繁重工作,但不应中断其他查询。
performance sql-server azure-sql-database blocking query-performance
在 BIDS 中,我正在运行数据流任务,我想知道对 OLE DB 源的数据访问模式使用“表或视图”与“SQL 命令”之间的幕后区别是什么。例如,假设我有一个名为 mytable 的表,它有 5 列(column1、column2、column3、column4、column5),但我只对 column1 感兴趣。我看到这两个选项:
当我进行测试时,第二个选项似乎运行得更快,但是当我使用“表或视图”然后只选择某些列时,我想确认幕后发生了什么。我很感激任何人都可以提供的任何见解。
(在我的特定用例中,mytable 是一个异地 Azure 数据库表,column2 中包含大量 xml。我的猜测是,当我使用“表或视图”时,所有列都通过网络传输)
sql-server-2008 sql-server ssis azure-sql-database ssis-2008
为什么我无法登录到 Azure 上的 SQL Server 数据库,我该如何解决这个问题?我们公司中没有人更改了我们 Azure SQL Server 数据库管理员用户的密码,但是当我在本地 PC 上使用 SQL Server Management Studio 2017 并像往常一样尝试连接到 Azure 数据库时,出现以下错误有:
服务器名称:XXXX.database.windows.net 错误号:18456 严重性:14 状态:1 行号:65536
根据 Microsoft ( https://docs.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-18456-database-engine-error?view=sql-server-2017 ),错误 18456 是登录失败。我不确定 Severity 值的含义。但是对于State值为1,则表示“错误信息不可用。这种状态通常意味着您没有权限接收错误详细信息。有关详细信息,请联系您的SQL Server管理员。”
不幸的是,Azure 支持网站已关闭,因此我无法进一步调查。
我们正处于计划将一些本地数据库迁移到云的早期阶段,并希望采用 PaaS 方式。我了解托管实例处于预览状态。
从我读到的内容来看,忽略成本,是否有任何理由不使用托管实例?在仍然是 PaaS/Managed 的同时,它不会使迁移更容易,因此我们不需要维护它吗?对我来说看起来是两全其美的。
我唯一找不到的问题是我们如何处理托管实例的灾难恢复?使用 Azure SQL DB,我们可以在另一个区域进行异地复制,但找不到任何类似的托管实例文档。
在初始阶段,我们计划迁移一个 OLTP 应用程序,该应用程序需要高度可用且查询延迟非常低。
sql-server ×5
performance ×3
azure ×1
blocking ×1
encryption ×1
logins ×1
ssis ×1
ssis-2008 ×1
ssms ×1