我使用SQL Server 2012 Management Studio连接到我的SQL azure服务器,我无法编辑任何表格的模式或其中的数据.当我右键单击表格时,缺少选项.难道我做错了什么?
我目前正在将客户端数据库移动到SQL Azure,我们看到了一些性能问题.我们有一个高级的p2实例,但是我们看到SQL azure数据库的性能时间比当前数据库慢了3倍(sql server 2008具有相似的内核数和内存数).索引匹配,语句相同,数据也是如此.
我理解在共享的Azure SQL数据库下性能会很差,但是由于我们有一个p2实例,我希望性能更接近我们现有的sql server 2008数据库.任何人都可以提供任何洞察为什么p2可能比非常相似的规范的sql server 2008运行速度慢?我意识到需要考虑延迟,但是两个服务器都远离我的位置,因此这应该稍微平衡一下或只占一小部分差异,而不是200毫秒v 600毫秒的一个简单查询.
鉴于SQL Azure数据库目前缺乏性能调优工具,任何人都可以提供有关调整数据库性能的任何有用建议吗?
提前致谢
我也曾在MS azure论坛上问过这个问题,因为我不确定会得到多少关注.http://social.msdn.microsoft.com/Forums/windowsazure/en-US/cf269a65-7222-4c67-a294-3fa2f67c9583/sql-azure-premium-p2-performance-issues?forum=ssdsgetstarted
我一直在寻找在Azure ASP.NET网站的AJAX调用上间歇性地发生的这个错误,今天我终于在我们的日志中发现了它.我怀疑锁是阻止操作,但看起来它尝试连接到Azure SQL数据库失败了.
这是异常消息:
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
This failure occurred while attempting to connect to the routing destination.
The duration spent while attempting to connect to the original server was -
[Pre-Login] initialization=28; handshake=43; [Login] initialization=0; authentication=0; [Post-Login] complete=2;
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的连接字符串:
Server=tcp:<server>,1433;Database=<database>;User ID=<user>;Password=<password>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30
Run Code Online (Sandbox Code Playgroud)
网站和Azure SQL数据库都位于同一区域.数据库的比例是标准 - S0,Azure网站是标准 - 小实例.
有没有人遇到过这个问题?
要求 - 我试图从asp.net MVC应用程序连接到azure SQL DB,连接类型到azure SQL DB是"基于令牌的",下面是从我的结束完成的设置.
一个.使用基于证书的身份验证创建了AAD应用程序(例如:MTSLocal).
湾 在SQL中添加了对上述AAD的权限.
从外部提供商创建用户[MTSLocal];
c.在代码级别,我试图通过使用客户端ID(从步骤a获得)和证书来获取访问令牌,并且我连接的资源是" https://database.windows.net ".请参考示例代码 -
string authority = string.Format(System.Globalization.CultureInfo.InvariantCulture, "https://login.windows.net/{0}",
"xxxx.onmicrosoft.com");
var authContext = new AuthenticationContext(authority);
AuthenticationResult result = null;
result = await authContext.AcquireTokenAsync("https://database.windows.net", AssertionCert);
token = result.AccessToken;
Run Code Online (Sandbox Code Playgroud)
d.我能够检索访问令牌,但当我尝试打开SQL连接时.我得到上述错误.
sqlBuilder["Data Source"] = serverName;
sqlBuilder["Initial Catalog"] = databaseName;
sqlBuilder["Connect Timeout"] = 30;
string accesstoken = GetAccessToken();
using (SqlConnection connection = new SqlConnection(sqlBuilder.ConnectionString))
{
try
{
connection.AccessToken = accesstoken;
connection.Open();
}
catch (Exception ex)
{
}
}
Run Code Online (Sandbox Code Playgroud)
任何有关这方面的帮助都会非常有帮助.
sql-server authentication asp.net-mvc azure-active-directory azure-sql-database
对于一个小型个人编码项目,我最近在 Azure 中创建了一个 SQL 数据库。在过去的几周里,我几乎没有使用过数据库,在 2 GB 的可用空间中,我只使用了 13 MB。
但是,数据库每天花费我 6,70 欧元,我不明白为什么会这样。阅读一些主题/帖子,说明类似用途的成本应该在每月 5-7 欧元左右,而不是每天。
这是数据库的配置:
有没有人知道是什么原因导致每月的费用如此之高?
我正在为我们的 Web 应用程序设置 Azure SQL 数据库。我们启用了时间点保留 (PITR) 和长期保留 (LTR)。我们的流程是将备份保留一年。
我们需要定期通过应用 SQL 脚本来升级数据库。有时升级脚本有问题,导致升级失败。我们需要将数据库回滚到之前的版本。
为了回滚数据库,我尝试了恢复功能。然而,恢复功能似乎只能创建新的数据库;问题就在于此。恢复到新数据库并删除旧数据库效果很好,但我们会丢失所有备份历史记录。看来备份与数据库相关(可能与 ResourceId 相关)。
那么,如何使用 Azure SQL DB 并定期还原数据库并仍然保留所有备份历史记录?
当 Azure Active Directory 管理员是 AAD 组时,我的 Web 应用程序无法登录数据库服务器
我一直在我的 Azure Web Apps 上推出“新”托管身份功能,并取得了不同程度的成功。简而言之,我们希望能够通过 Active Directory 控制对 Azure SQL 服务器的访问。我们已在 Web 应用程序上启用托管身份:
我决定创建一个 AAD 组,添加所有 DBA 以及有权与该数据库服务器通信的 Azure Web 应用程序。然后,该 AAD 组将被分配为 Azure Active Directory 管理员。这是包含许多 DBA 和 Web 应用程序作为成员的 AAD 组:
设置数据库服务器的 Azure Active Directory 管理员:
此时,组内用户可以通过SSMS成功登录,而Web App则不能。"Login failed for user '<token-identified principal>'"我在 Web 应用程序日志中
收到错误。如果我直接将Web App设置为Azure Active Directory Admin,则可以成功登录。
我已通过 .scm 安装了 MSI 验证程序。(Kudu) 仪表板,并确认当组分配为管理员和 Web 应用程序直接分配为管理员时,Web 应用程序可以成功从数据库服务器检索令牌。(为了完整起见,我还尝试从它不应该访问的服务器访问令牌,并且无法按预期检索)
我还尝试过以下方法:
azure azure-active-directory azure-sql-database azure-web-app-service azure-managed-identity
我正在编写一个"概念证明"应用程序,以研究在必要的重写整个应用程序期间将定制的ASP.NET电子商务系统转移到Windows Azure的可能性.
我很想看看使用Azure表存储作为SQL Azure的替代方案,因为随着应用程序的进一步成熟,存储的实体可能随着时间的推移而改变其架构(属性),并且我不需要进行无休止的数据库架构更改.此外,我们可以在应用程序代码中构建参考完整性 - 因此考虑Azure表存储的情况非常强.
我目前唯一可以看到的潜在问题是我们做了一些简单的报告 - 即两个日期之间的销售价值,特定产品的销售数量等等.我知道Table Storage不支持聚合类型功能,我相信我们可以通过巧妙地使用分区,多个实体类型来存储相同数据的子集以及可能的预聚合来实现我们想要的目标,但我不是100%确定如何去做.
有没有人知道有关Azure表存储设计原则的任何深入文档,以便我们正确有效地使用Tables,PartitionKeys和实体设计等.
有一些简单的文档,目前的书籍往往不会深入研究这个主题.
仅供参考 - 电子商务网站拥有约25,000名客户,每年约需100,000份订单.
我正在为我的一些在线游戏构建排行榜.以下是我需要处理的数据:
我使用下面的表定义和索引定义,我有几个问题.
考虑到我的场景,我有一个好的主键吗?我在gameId,playerName和得分上拥有聚类键的原因仅仅是因为我想确保给定游戏的所有数据都在同一区域并且该得分已经排序.大多数时候,我将显示数据是给定gameId的得分降序(+ updatedDateTime for ties).这是一个正确的策略吗?换句话说,我想确保我可以运行我的查询以尽可能快地获得我的玩家的排名.
CREATE TABLE score (
[gameId] [smallint] NOT NULL,
[playerName] [nvarchar](50) NOT NULL,
[score] [int] NOT NULL,
[createdDateTime] [datetime2](3) NOT NULL,
[updatedDateTime] [datetime2](3) NOT NULL,
PRIMARY KEY CLUSTERED ([gameId] ASC, [playerName] ASC, [score] DESC, [updatedDateTime] ASC)
CREATE NONCLUSTERED INDEX [Score_Idx] ON score ([gameId] ASC, [score] DESC, [updatedDateTime] ASC) INCLUDE ([playerName])
Run Code Online (Sandbox Code Playgroud)
下面是我将用于获得我的玩家等级的查询的第一次迭代.但是,我对执行计划感到有点失望(见下文).为什么SQL需要排序?额外的排序似乎来自RANK功能.但是我的数据是否已按降序排序(基于得分表的聚类键)?我也想知道我是否应该更多地规范化我的表并移出Player表中的PlayerName列.我最初决定将所有内容保存在同一个表中,以最大限度地减少连接数.
DECLARE @GameId AS INT = 0
DECLARE @From AS DATETIME2(3) = '2013-10-01'
SELECT DENSE_RANK() OVER (ORDER BY Score DESC), …Run Code Online (Sandbox Code Playgroud) azure ×7
sql ×4
sql-server ×4
database ×2
asp.net ×1
asp.net-mvc ×1
backup ×1
restore ×1
ssms ×1