标签: azure-sql-database

Azure表存储 - 实体设计最佳实践问题

我正在编写一个"概念证明"应用程序,以研究在必要的重写整个应用程序期间将定制的ASP.NET电子商务系统转移到Windows Azure的可能性.

我很想看看使用Azure表存储作为SQL Azure的替代方案,因为随着应用程序的进一步成熟,存储的实体可能随着时间的推移而改变其架构(属性),并且我不需要进行无休止的数据库架构更改.此外,我们可以在应用程序代码中构建参考完整性 - 因此考虑Azure表存储的情况非常强.

我目前唯一可以看到的潜在问题是我们做了一些简单的报告 - 即两个日期之间的销售价值,特定产品的销售数量等等.我知道Table Storage不支持聚合类型功能,我相信我们可以通过巧妙地使用分区,多个实体类型来存储相同数据的子集以及可能的预聚合来实现我们想要的目标,但我不是100%确定如何去做.

有没有人知道有关Azure表存储设计原则的任何深入文档,以便我们正确有效地使用Tables,PartitionKeys和实体设计等.

有一些简单的文档,目前的书籍往往不会深入研究这个主题.

仅供参考 - 电子商务网站拥有约25,000名客户,每年约需100,000份订单.

azure azure-storage azure-table-storage azure-sql-database

10
推荐指数
1
解决办法
7541
查看次数

SQL Azure复制

有谁知道SQL Azure是否支持合并复制?我目前正在使用SQL 2008 R2的Web版本,它不支持复制的发布方面,我需要一个不花费7000美元的解决方案.

azure merge-replication azure-sql-database

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

Azure Blob存储的事务访问

我想将文件存储在Azure Blob存储中.到现在为止还挺好.我还想存储关于该文件的附加元数据; 为此,我使用Azure SQL数据库(因此我可以轻松查询blob存储上的文件).

因此,当我向商店添加新文件时,我想确保blob以及元数据已成功编写.因此,我想到了使用类似事务上下文的东西.

有没有办法,使用blob存储和sql存储创建这样的事务上下文?

azure-storage-blobs azure-sql-database

10
推荐指数
2
解决办法
2318
查看次数

使用SQL Server的排行榜设计

我正在为我的一些在线游戏构建排行榜.以下是我需要处理的数据:

  • 在多个时间范围内(今天,上周,所有时间等)获取给定游戏的玩家等级
  • 获得分页排名(例如最近24小时的最高分,获得排名25到50之间的玩家,获得排名或单个用户)

我使用下面的表定义和索引定义,我有几个问题.

考虑到我的场景,我有一个好的主键吗?我在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)

sql database sql-server database-design azure-sql-database

10
推荐指数
1
解决办法
4837
查看次数

如何测试数据库是否托管在SQL Azure上?

是否可以测试数据库是否托管在SQL Azure上?我正在寻找用于EF6的SqlAzureExecutionStrategy,并且只想在数据库实际是SQL Azure数据库时应用.

目前我正在测试App是否在Azure中运行.但是,我们正在考虑允许客户端自己托管数据库,因此需要某种方法来确定数据库是SQL Server还是Azure SQL.

假设EF不知道它隐藏了实现细节.

可能只是有一个配置设置我猜.只是想知道它是否在技术上可行.

sql-server entity-framework entity-framework-6 azure-sql-database

10
推荐指数
2
解决办法
4067
查看次数

"信号量超时期限已过期"SQL Azure

我正在运行一个带有使用Entity Framework 6访问的SQL Azure数据库的.Net MVC Azure网站.间歇性地(大约一千个请求中有一个),我收到错误"System.ComponentModel.Win32Exception:信号量超时期限已过期"

System.Data.SqlClient.SqlException:从服务器接收结果时发生传输级错误.(提供程序:TCP提供程序,错误:0 - 信号量超时期限已过期.)---> System.ComponentModel.Win32Exception:信号量超时期限已过期

似乎没有理由在错误之前和之后以及它们与SQL Azure的交互都很好.有没有办法处理或解决这个问题.

asp.net-mvc entity-framework azure azure-sql-database

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

从Azure中的WebJob访问SQL数据库

我打算使用WebJobs作为NServiceBus的轻量级替代品,但是想要首先验证可以从触发的WebJob处理程序中进行例行SQL Azure数据库查询吗?我的数据库访问将通过EntityFrameworks.

这个SO线程表明WebJobs不支持SQL数据库,但我希望这只是意味着SQL数据库不能用作WebJob处理程序的触发机制?

Azure Web作业 - 如何连接到Azure MS SQL数据库?

我没有找到发布SQL数据库查询的WebJob示例,但由于WebJob可以访问与主WebSite相同的应用程序配置,我假设可以使用数据库连接详细信息?

azure-webjobs azure-sql-database

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

SQL Azure地理复制用于非冗余目的

我只是在研究如何在Azure上构建一个大规模,全局可访问的应用程序.

那里已经有很多技术可以让你的应用程序尽可能贴近消费者.

  • 用于静态内容的CDN边缘服务器在全球共享.
  • 不同地区的云服务,使用流量管理器将域名路由到最近的应用程序主机.

我有点困惑的是数据库.如果您使用的是SQL Azure,则必须指定一个区域来放置它.如果我的SQL Azure实例位于西欧(阿姆斯特丹),但我的客户位于澳大利亚,并通过澳大利亚(NSW)的实例访问该应用程序,应用程序与数据库通信之间会有一些延迟.

我见过的有关Geo Replication的所有参考资料似乎都在主从冗余设置的上下文中.但是我想知道是否可以使用Master-Master设置,其中每个应用程序实例在同一个Geo-Region中与它自己的SQL Azure主实例进行对话,然后sql azure会处理它们之间的双向复制.

sql sql-server azure geo-replication azure-sql-database

10
推荐指数
1
解决办法
3063
查看次数

如何使用Azure自动化运行存储过程?

我真的是Azure平台的新手,也许这是一个愚蠢的问题,但我找不到有关这个主题的信息.我真的需要帮助.我正在为大学项目部署Web服务使用的数据库.在这个数据库中,我有一个存储过程,需要每天运行它.

发现使用Azure自动化,您可以编程或安排此类操作.我"安装"了该服务,我正在尝试创建"Runbook",但不知道如何在这里编写代码或代码,因为我从未使用过PowerShell.

任何帮助将不胜感激.提前致谢!

编辑1:

所以我正在尝试使用这段代码来制作魔法:

 workflow WORKFLOW_NAME
{ 
    param( 

    ) 


    inlinescript { 
        # Define the connection to the SQL Database 
        $Conn = New-Object System.Data.SqlClient.SqlConnection("Data Source=SERVER_NAME.database.windows.net;Initial Catalog=DATABASE_NAME;Integrated Security=False;User ID=USERNAME;Password=PASSWORD;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False") 

        # Open the SQL connection 
        $Conn.Open() 

        # Define the SQL command to run. 
        $Cmd=new-object system.Data.SqlClient.SqlCommand("exec PROCEDURE_NAME", $Conn) 
        $Cmd.CommandTimeout=120 

        # Execute the SQL command 
        $Da=New-Object system.Data.SqlClient.SqlDataAdapter($Cmd) 

        # Close the SQL connection 
        $Conn.Close() 
    } 
}
Run Code Online (Sandbox Code Playgroud)

问题在于,当我保存RunBook并发布它时,它表示没有错误.当我运行RunBook时,它启动并完成发送没有错误或异常,所以你可以期望它能正常工作吗?但是在咨询数据库时,程序中没有修改过程.这可能是什么错误?我究竟做错了什么?

我从https://gallery.technet.microsoft.com/scriptcenter/How-to-use-a-SQL-Command-be77f9d2#content中获取了参考代码,对其进行了个性化并摆脱了"param",因为RunBook何时开始,从未要求任何输入参数,所以我决定使用完整的连接字符串.我使用与我的c#项目相同的连接字符串,它连接并完美地工作.

我正在使用"新"天蓝色界面,不知道这在这方面是否具有任何重要性.

再次感谢您提供的任何帮助.

powershell automation azure azure-automation azure-sql-database

10
推荐指数
1
解决办法
7950
查看次数

从Visual Studio连接到SQL Azure

我试图通过从Visual Studio 2013(VS和Azure的最新版本)中创建新的数据连接来连接到Azure SQL数据库.数据库已创建,有表等,但我继续收到以下错误:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)(Microsoft SQL Server,错误:53)

  • 我已确保允许TCP并在Configuration Manager中的命名管道上方.
  • Azure防火墙上允许关联的IP地址.
  • 证书已添加到VS等.

仍然没有联系.我可以在Server Explorer的Azure部分中看到数据库,但无法添加数据连接.

我有一台运行Win 7的MacBook Pro就在我的办公室电脑旁边,它可以访问Azure.

azure visual-studio-2013 azure-sql-database

9
推荐指数
1
解决办法
2640
查看次数