标签: azure-sql-database

使用SQLServer包含部分单词

我们正在运行许多产品搜索一个包含部分匹配条形码的大型目录.

我们从简单的查询开始

select * from products where barcode like '%2345%'

但这需要太长时间,因为它需要全表扫描.我们认为全文搜索将能够帮助我们使用contains.

select * from products where contains(barcode, '2345')

但是,似乎包含不支持查找部分包含文本的单词,但只支持单词匹配或前缀.(但在这个例子中我们正在寻找'123456').

sql-server contains sql-like azure-sql-database

16
推荐指数
3
解决办法
6690
查看次数

EF Core的间歇性错误:连接不支持MultipleActiveResultSets

我有一个使用EF Core的ASP.Net Core应用程序.

我使用ASP.Net Identity并为我的应用程序的实体共享相同的DBContext.

我已将连接字符串设置为Azure SQL数据库,以使MultipleActiveResultSet = True.

它可以工作一两天,但最终失败并出现错误:

该连接不支持MultipleActiveResultSets.

我不认为MARS是真正的问题,因为它在前两天起作用了.

我正在使用ASP.Net Core的内置DI来设置我的DbContext.

services.AddDbContext<AppDbContext>(options =>
  options.UseSqlServer(appDbContextConnectionString));
Run Code Online (Sandbox Code Playgroud)

我的理解是上面的DbContext的默认生命周期是Transient(每个Web请求).

是否可以与ASP.Net Identity共享相同的DBContext,或者我应该为我的应用程序的实体分别使用一个DBContext,指向相同的数据库?

我不知道这是EF Core,ASP.Net Core还是SQL Azure配置的问题.

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

16
推荐指数
3
解决办法
3907
查看次数

密钥“身份验证”值无效

我有一个 .NET Core 3.0 应用程序,正在尝试使用 EF Core 和 Active Directory 集成身份验证连接到 Azure SQL 数据库。
我已验证我可以从我的计算机访问此数据库,因为我可以使用 SQL Server Management Studio 和“Azure Active Directory 集成”身份验证很好地连接到它。

但是,当我尝试读取应用程序中的数据(使用 EF Core)时,我总是收到 System.Argument 异常,其中包含以下语句:

密钥“身份验证”值无效

异常详细信息指向数据库连接字符串。

因此,这是我的 dev appsettings.json 文件中的连接字符串:

"ConnectionStrings": { "MCDB": "服务器=tcp:dev-media-center-sql.database.windows.net,1433;初始目录=MediaCenter;持久安全信息=False;用户ID={我的用户ID}; MultipleActiveResultSets=False;加密=True;TrustServerCertificate=False;身份验证=Active Directory 集成;" },

我尝试直接在代码中对连接字符串进行硬编码,认为我的 JSON 可能有问题,但我仍然遇到相同的异常。

“Active Directory Integrated”不是“身份验证”关键字的有效值吗?如果不是,那是什么?我已经尝试过“ActiveDirectoryIntegrated”(不带空格)和/“Active Directory Integrated”/(转义双引号)但无济于事。

json azure azure-active-directory .net-core azure-sql-database

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

如何在Sql Azure中重置身份种子

我已尝试以下方法重置我的列的标识种子:

DBCC CHECKIDENT ('dbo.Stuff', RESEED, 0)
Run Code Online (Sandbox Code Playgroud)

这在sql azure中不起作用,我想知道这样做的最佳方法是什么.删除并重新创建表?

c# sql entity-framework azure-sql-database

15
推荐指数
2
解决办法
9424
查看次数

MultiTenant表是否应在主键和外键中包含TenantID?

对于多租户单个共享数据库,tenantid字段是否应包含在主键和聚簇索引中?或者在tenantid上添加额外的索引,就像表现一样?

我们在生产系统上遇到性能问题,其唯一索引是主键上的聚簇索引.

所有sql select语句都在其linq到实体语句中以tenantid开头,例如

invoiceitems.tenantid = thecurrenttenantid order by invoicedate
Run Code Online (Sandbox Code Playgroud)

当前的模式

租户(tenantid uniqueidentifier主键,tenantname)外键(tenantid)索引(在tenantid上聚集)

客户(tenantid uniqueidentifier,customerid uniqueidentifier主键,customername varchar(50))外键(tenantid,customerid)索引(聚集在customerid上)

发票(tenantid uniqueidentifier,invoiceid uniqueidentifier主键,billcustomerid uniqueidentifier,shipcustomerid uniqueidentifier,invoicedate datetime)外键(tenantid,billcustomerid,shipcustomerid)索引(聚集在invoiceid上)

InvoiceItems(tenantid uniqueidentifier,invoiceitemid uniqueidentifier primarykey,invoiceid uniqueidentifier,lineitemorder int)外键(tenantid,invoiceid)索引(聚集在invoiceitemid上)

SqlAzure要求每个表都有一个聚簇索引,因此它当前只在primarykeyid上,因为这是默认值.现在,这是每个表的唯一索引.整个系统中的表中有各种外键,并且没有索引外键表字段.

我们正在尝试解决一些性能问题,并且想知道什么是最好的聚簇索引以及是否有任何其他索引可能有用.我们希望我们不必更改现有的聚集索引,除非我们必须这样做,但我们愿意这样做.在SqlAzure AFAIK中,您不能简单地调整现有表中的聚簇索引 - 您必须创建具有所需聚簇索引的新表,并将旧表中的所有记录插入到新表中(并处理所有外键约束和其他表依赖项).

所有sql select语句都以linq到entity语句中的tenantid开头.

invoiceitems.tenantid = thecurrenttenantid order by invoicedate
Run Code Online (Sandbox Code Playgroud)

一些sql select语句只有一个顺序 - 有些在引入子表时有一些其他连接条件值

invoiceitems.tenantid = thecurrenttenantid and invoice.invoiceid = invoiceitems.invoiceid order by invoicedate
Run Code Online (Sandbox Code Playgroud)

以下是一些想法(除此之外我们对其他人开放) - 哪一个最好,为什么

主要指标选项

加快访问租户的记录

选项1 - 在tenantid上添加非聚集索引 …

indexing database-design azure multi-tenant azure-sql-database

15
推荐指数
1
解决办法
1964
查看次数

SSMS对象资源管理器 - 连接到Azure DB时,选择缺少的前N行

我刚刚将SSMS升级到2008 R2.我错过了从表中选择前1000行的选项,如下所示:

在此输入图像描述

我看起来像这样:

在此输入图像描述

我知道如何更改显示的行数,但选项根本不存在.几年前我看到有人提交了一个bug,但没有解决方法,我不知道该怎么做.有任何想法吗?

编辑 - Azure问题?

我刚刚使用SSMS打开我的本地SQL Server,我可以选择前100行.但在我的其他SSMS实例中,连接到我的Azure数据库的实例,我没有看到它.它可能是Azure限制吗?

sql-server ssms azure sql-server-2008 azure-sql-database

15
推荐指数
1
解决办法
4328
查看次数

Azure SQL数据库连接问题 - 连接太多?

我有一个网站,这是我最近推出的白色标签(同一网站的多个版本).目前还没有大量的流量 - 主要是机器人,但每天可能有800个用户.除了位于非天蓝服务器上的管理面板之外,它还在Azure上托管Azure数据库.两个站点都连接到同一个Azure数据库.还有一些工作人员角色正在运行以处理数据 - 99%的时间他们没有做任何事情,但他们会定期检查.

我总是遇到随机错误,持续几秒钟然后再次没问题,例如:

从服务器接收结果时发生传输级错误.(提供程序:TCP提供程序,错误:0 - 远程主机强制关闭现有连接.)

然而,今天早上,我们遇到了一个更严重的问题.它始于:

System.ComponentModel.Win32Exception:远程主机强制关闭现有连接

这是在机器人(谷歌,百度,AhrefsBot和Wiseguys.nl)索引该网站时发生的.我从这些中得到了一个或多个错误.然后我得到了:

System.Data.SqlClient.SqlException:服务在处理您的请求时遇到错误.请再试一次.错误代码40143.当前命令发生严重错误.结果(如果有的话)应该被丢弃.

这是在ExecuteReader阶段.

10分钟后,真正的问题来了 - 这意味着没有人可以登录到管理界面,但是当我测试它时,Azure托管的网站似乎没问题,尽管机器人仍然会出现错误.问题是:

System.ComponentModel.Win32Exception:等待操作超时

这继续随机连接打开和关闭大约一个小时.然后我遇到了另一个问题:

System.Data.SqlClient.SqlException:资源ID:1.数据库的请求限制为180且已达到.有关帮助,请参阅" http://go.microsoft.com/fwlink/?LinkId=267637 ".

这发生在最后一小时的开关 - 主要是工人角色.然后我试图找出占用所有这些请求的内容,我发现了这个命令:

SELECT*FROM sys.dm_exec_requests

当我一遍又一遍地运行它时,它只返回了1或2个请求.

所以我的问题是:1)是否有其他人经常相对定期(一次,可能一天两次)与Azure上托管的服务器暂时断开连接?2)上述事件列表是否表明存在特定问题?当大量管理员一次登录时,可能都会发生这种情况.3)当我收到180限制消息时,如何更好地调试对数据库的请求数?

提前致谢.

c# connectivity azure-sql-database

15
推荐指数
1
解决办法
4294
查看次数

Azure SQL数据库定价是每个数据库服务器或每个用户创建的数据库

对于Azure SQL数据库定价,定价为$ x /小时

问题: 假设'x'是2美元/小时.如果我为我的应用程序创建10个不同的用户数据库,我将支付10倍的每小时费用,即20美元/小时,或者我只需花费2美元/小时,因为数据库服务器的成本是多少?

我不确定是否会为每个用户创建的数据库收费,即这10个数据库中的每一个或仅用于一个数据库服务器.

azure-sql-database

15
推荐指数
2
解决办法
4万
查看次数

致命错误:在C:\ xampp\htdocs中调用未定义的函数sqlsrv_connect()

我在用

  • Xampp版本3.2.1,PHP版本5.6.8.
  • Microsoft Azure SQL服务器

目标

我正在尝试创建一个将访问我的数据库的Web应用程序,并能够SELECT,INSERT,UPDATEDELETE记录.


问题

我无法连接到数据库服务器


错误

致命错误:在第25行的C:\ xampp\htdocs\BLT\Employee_Database .php中调用未定义的函数sqlsrv_connect()


<html>
<head>
    <Title>Employee Database</Title>
</head>
<body>
<form method="post" action="?action=add" enctype="multipart/form-data">
    Last name <input type="text" name="LastName" id="LastName"/></br>
    First name <input type="text" name="FirstName" id="FirstNamne"/></br>
    E-mail address <input type="text" name="Email" id="Email"/></br>
    User Id <input type="text" name="UserId" id="UserId"/></br>
    Password <input type="password" name="Password" id="Password"/></br>
    <input type="submit" name="submit" value="Submit"/>
</form>

<?php
$serverName = "jy4nij6vuy.database.windows.net,1433";
$connectionOptions = array("Database" => "robertfarb",
    "UID" => "robertFarb",
    "PWD" => …
Run Code Online (Sandbox Code Playgroud)

php sql sql-server xampp azure-sql-database

15
推荐指数
2
解决办法
6万
查看次数

Linux python3 - 无法打开lib'SQL Server'

我正在尝试连接到Microsoft Azure SQL Server数据库.

这是我试图连接的方式:

 conn = pyodbc.connect('DRIVER={SQL Server};SERVER=%s' % (self.config.get("Sql", "DataSource")),
                        user= self.config.get("Sql", "UserId"),
                        password=self.config.get("Sql", "Password"),
                        database=self.config.get("Sql", "Catalog"))
Run Code Online (Sandbox Code Playgroud)

我在排除这一行时遇到错误.错误:

pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'SQL Server' : file not found (0) (SQLDriverConnect)")
Run Code Online (Sandbox Code Playgroud)

想不通为什么会这样,有什么想法吗?

linux sql-server azure python-3.x azure-sql-database

15
推荐指数
3
解决办法
3万
查看次数