标签: azure-sql-database

查看通过Linq传递给azure查询到实体框架的参数

我正在使用linq to Entity来查询azure数据库.我已登录azure查看给出特定问题的查询.我想实际查看传入的参数,但所有azure给我的是下面.有没有办法在查询已经运行后查看参数(例如,更改代码以记录它们目前不是一个选项).

当我登录azure时,请转到管理门户 - SQL数据库| 查询性能| 选择特定查询.我可以看到以下内容:问题是我无法看到已经传递给参数的内容,例如@p_ linq _19.我只看到一个参数占位符.

SELECT TOP (150) 
[Project1].[AlertIdentifier] AS [AlertIdentifier]
FROM ( SELECT 
 [Extent1].[AlertIdentifier] AS [AlertIdentifier], 
 [Extent1].[TimeReceived] AS [TimeReceived]
 FROM [dbo].[SecurityAlert] AS [Extent1]
 WHERE (2 <> [Extent1].[AlertStatusID]) AND ((convert(datetime2, '0001-01-01 00:00:00.0000000', 121) = @p__linq__0) OR ([Extent1].[DateScanned] >= @p__linq__1)) AND ((N'' = @p__linq__2) OR ([Extent1].[BettingShopIdentifier] LIKE @p__linq__3 ESCAPE N'~')) AND ((convert(datetime2, '0001-01-01 00:00:00.0000000', 121) = @p__linq__4) OR ([Extent1].[DateScanned] <= @p__linq__5)) AND ((cast(0 as float(53)) = @p__linq__6) OR ( CAST( [Extent1].[SlipStake] AS float) >= @p__linq__7)) AND …
Run Code Online (Sandbox Code Playgroud)

sql linq-to-entities azure azure-sql-database

8
推荐指数
1
解决办法
715
查看次数

此版本的SQL Server - SQL Azure不支持语句'SELECT INTO'

我正进入(状态

SQL Server中此版本的SQL Server不支持语句"SELECT INTO"

对于存储过程中的以下查询

DECLARE @sql NVARCHAR(MAX)
,@sqlSelect NVARCHAR(MAX) = ''
,@sqlFrom NVARCHAR(MAX) = ''
,@sqlTempTable NVARCHAR(MAX) = '#itemSearch'
,@sqlInto NVARCHAR(MAX) = ''
,@params NVARCHAR(MAX)


SET @sqlSelect ='SELECT     
,IT.ITEMNR
,IT.USERNR
,IT.ShopNR
,IT.ITEMID'                 

SET @sqlFrom =' FROM        dbo.ITEM AS IT' 
SET @sqlInto = ' INTO ' + @sqlTempTable + ' ';  

IF (@cityId > 0)
    BEGIN
        SET @sqlFrom = @sqlFrom +
            ' INNER JOIN    dbo.CITY AS CI2
                        ON  CI2.CITYID = @cityId'

        SET @sqlSelect = @sqlSelect +
            'CI2.LATITUDE AS CITYLATITUDE …
Run Code Online (Sandbox Code Playgroud)

sql sql-server azure-sql-database

8
推荐指数
3
解决办法
6842
查看次数

Azure服务总线和事务

我是Azure Service Bus的新手,我正在尝试建立用于排队消息的事务策略。由于SQL Azure不支持MSDTC,因此不支持MSDTC,因此无法使用它。因此,我有一个可以手动处理数据库事务的工作单元。

问题是我只能找到使用TransactionScope来处理数据库和Azure Service Bus操作的人员。在不使用TransactionScope的情况下,还有其他神奇的方法可以在Service Bus上实现事务吗?

谢谢。

transactions azure azureservicebus azure-sql-database

8
推荐指数
1
解决办法
2771
查看次数

如何使用EF Model First数据库架构升级来避免数据丢失?

这是一个很长的问题,但如果我能就此得到一些好的建议,我将非常感激.简而言之,我正在寻找一种用于MS SQL数据库模式的版本升级的好方法,该方法还要求将数据从已删除的表移动到新表中.

我认为Stack Overflow是这个问题最合适的地方(不是dba.stackexchange.com),因为在它的核心,对于使用Entity Framework的.NET开发人员来说这是一个问题,而这个数据库部分主要由自动生成的sql组成.脚本.


背景

.NET应用程序和SQL数据库在Azure中运行(工作者角色中的应用程序和Azure SQL中的数据库).到目前为止,版本升级工作正常,因为所有数据库架构更改都很简单(如添加新列).但是,从现在开始,我还需要处理在升级期间将数据从一个表移动到另一个表.(我能够通过创建一个新数据库来临时修复此问题,使用旧数据库中的数据生成脚本并手动编辑脚本以使其适合新模式,但我希望有更好的方法).

我使用Entity Framework,我使用Model First.实体和关联在Visual Studio数据模型设计器中定义,这种方法非常适合我的应用程序.

我使用dacpac来升级Azure SQL数据库,这种方法一直运行到现在(但现在我将丢失数据,所以现在我必须找到一种方法将数据移动到新表).

我希望我可以继续使用实体框架并在设计器中定义实体/关联,但如果需要,可以从dacpac升级转换到另一种技术.

升级方法直到现在

  1. 我在设计器中添加了新实体(表),关联(关系)和属性(列).
  2. 我右键单击,选择"从模型中生成数据库...",这将生成一个.sql脚本,它删除旧的数据库对象并创建新的数据库对象.
  3. 我创建一个空数据库并运行脚本来创建表/键等.
  4. 在SQL Server Management Studio中,我右键单击数据库并选择"任务 - >提取数据层应用程序...".当向导完成时,我得到了我需要的dacpac(实际上我现在可以删除数据库,因为我只创建了它才能获得dacpac文件,因为我不认为我可以在Visual Studio数据模型设计器中生成它) .
  5. 我右键单击Azure SQL数据库并选择"任务 - >升级数据层应用程序..."并按照向导进行操作.到现在为止,我从来没有数据丢失,所以这个工作正常!

现在的情况

这是一个简单的例子来说明这个问题,但是从现在开始我似乎会经常进入几乎相同的情况.查看下图中的旧版和新版架构.假设数据库中已有数据.我需要ImageFile中的数据最终在ImageFileOriginal或ImageFileProcessed中,具体取决于IsOriginal布尔/位值.使用"升级数据层应用程序"我将收到有关数据丢失的警报.你会建议采用什么方法来解决这个问题?正如我之前所说,如果需要,可以将dacpac升级转换为其他技术.

旧架构 新架构

我已经阅读了有关Visual Studio数据库项目,Fluent Migrator,Red Gate和实体设计器数据库生成Power Pack(它不支持Visual Studio 2012),但我没有找到一个好办法.我承认我没有花一整天时间深入研究每种技术,但我当然花了一些时间尝试找到一种好的方法.

entity-framework database-migration ef-model-first dacpac azure-sql-database

8
推荐指数
1
解决办法
1590
查看次数

使用SqlPackage.exe将SqlDatabase导出到Bacpac会导致fillfactor失败

我使用以下命令执行sqlpackage以导出本地数据库的bacpac.

"C:\ Program Files(x86)\ Microsoft SQL Server\110\DAC\bin\sqlpackage.exe"/ action:Export /tf:".\dbname_Baseline.bacpac"/ SourceConnectionString:"XXXXXXXXXXXX"

它无法说"元素主键:[dbo].[PK_Name]具有不受支持的属性FillFactor设置,并且在用作数据包的一部分时不受支持."

我理解不支持fillfactor但有什么可以忽略不支持的属性吗?

谢谢

标记

fillfactor export bacpac azure-sql-database

8
推荐指数
1
解决办法
3021
查看次数

Azure SQL等待操作超时

我准备放弃Azure SQL以解决可靠性问题,但我想我先在这里查看.我在SQL Azure上遇到了几个零星的超时错误.这不是连接字符串问题 - 我们谈论的是几个已经运行了很长时间但没有问题的应用程序.确切的错误是:

System.ComponentModel.Win32Exception: The wait operation timed out
Run Code Online (Sandbox Code Playgroud)

目前,我正在考虑过去30分钟左右的其中300个.我运行了http://blog.sqlauthority.com/2010/05/14/sql-server-find-most-expensive-queries-using-dmv中提到的DMV查询,以了解发生了什么,并发现:

在此输入图像描述

根据文档,602,382是微秒,或大约602毫秒,所以显然我的数据库使用要求非常低.我有一种感觉,这纯粹是Azure SQL的过度租赁问题.还有其他可能的解释吗?任何潜在的解决方案都不能让Azure SQL成为更环保的牧场(例如专用的SQL VM)?

performance azure-sql-database

8
推荐指数
1
解决办法
3952
查看次数

Azure SQL数据库 - 速度慢

我目前正在使用SQL Azure,我意识到当我将它与Sql Server Management Studio或Visual Studio 2013 Data Tools一起用于设计数据库时,它非常慢.有没有人有同样的问题?我尝试将数据库扩展到此配置但它仍然工作缓慢:

服务器层:标准.表现水平:S2.

问候,

罗德里戈

azure-sql-database

8
推荐指数
1
解决办法
1721
查看次数

Azure中的ExecuteSqlCommand事务

我使用EF 6与Azure Sql数据库.根据Microsoft,不支持用户启动的事务(参考:https://msdn.microsoft.com/en-us/data/dn307226#transactions)

现在,使用EF 6,ExecuteSqlCommand默认情况下包含在事务中:

从EF6 Database.ExecuteSqlCommand()开始,默认情况下会将命令包装在事务中(如果尚未存在).(参考:https://msdn.microsoft.com/en-us/data/dn456843.aspx)

鉴于我的情况,我应该总是抑制这样的ExecuteSqlCommand事务行为:

context.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction, @"TRUNCATE TABLE Person;");
Run Code Online (Sandbox Code Playgroud)

c# entity-framework azure azure-sql-database

8
推荐指数
1
解决办法
1273
查看次数

如何使用SqlAzureExecutionStrategy和"Nolock"

为了处理SQL超时我正在尝试使用SqlAzureExecutionStrategy(https://msdn.microsoft.com/en-us/data/dn456835.aspx)

我遇到的问题是,它可以防止"用户发起的交易",这似乎是实施"与(NOLOCK)",在EF(推荐方式http://www.hanselman.com/blog/GettingLINQToSQLAndLINQToEntitiesToUseNOLOCK.aspx,NOLOCK与Linq to SQL).

示例代码

    public AspnetUser GetAspnetUserByUserName(string userName)
    {
        using (var tx = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions() { IsolationLevel = IsolationLevel.ReadUncommitted }))
        {
            return context.AspnetUsers.Where(x => x.UserName == userName).FirstOrDefault();
        }
    }
Run Code Online (Sandbox Code Playgroud)

抛出错误

配置的执行策略"SqlAzureExecutionStrategy"不支持用户启动的事务.有关其他信息,请参阅http://go.microsoft.com/fwlink/?LinkId=309381.

我已经看到了在每次调用的基础上关闭SqlAzureExecutionStrategy的答案,但是如果我的所有读取都忽略了策略,那将无法使用它.可以同时拥有"NoLock"和SqlAzureExecutionStrategy

linq entity-framework azure entity-framework-6 azure-sql-database

8
推荐指数
1
解决办法
4494
查看次数

无法使用sequelize连接到SQL Azure数据库,但localhost上的SQL Server工作正常

我已经使用MongoDB为Heroku部署了一些站点,但这是我第一次使用SQL创建一个站点并尝试部署到Azure,所以我可能会遗漏一些明显的东西.

我一直在使用Node.js,一个SQL Server数据库和Sequelize作为ORM在我的开发机器上开发一个网站.一切正常,但当我尝试使用连接字符串部署到Azure时,我无法连接SQL Azure数据库.我可以使用SQL Server Management Studio连接Azure上的空数据库,所以我确定我的连接信息是正确的.

当我尝试部署到Azure时,我尝试使用Azure提供的连接字符串:

var Sql = require('sequelize');
var sql = new Sql('Driver={SQL Server Native Client 11.0};Server=tcp:server.database.windows.net,1433;Database=databasename;Uid=UserName@server;Pwd={password};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;');
Run Code Online (Sandbox Code Playgroud)

当我尝试连接此字符串时,我得到的错误是:

C:\Users\username\Documents\GitHub\event-site\node_modules\sequelize\lib\sequelize.js:110
    options.dialect = urlParts.protocol.replace(/:$/, '');
                                       ^

TypeError: Cannot read property 'replace' of null
    at new Sequelize (C:\Users\v-mibowe\Documents\GitHub\event-site\node_modules\sequelize\lib\sequelize.js:110:40)
    at Object.<anonymous> (C:\Users\v-mibowe\Documents\GitHub\event-site\routes\db-routes.js:68:11)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (C:\Users\v-mibowe\Documents\GitHub\event-site\server.js:16:1)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Function.Module.runMain (module.js:467:10)
    at …
Run Code Online (Sandbox Code Playgroud)

sql-server azure node.js sequelize.js azure-sql-database

8
推荐指数
1
解决办法
3054
查看次数