GVKun编程网logo

sql-server – 如何使用Redis作为SQL Server的缓存?(redis怎么缓存sql数据)

10

如果您对sql-server–如何使用Redis作为SQLServer的缓存?感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于sql-server–如何使用Redis作为SQ

如果您对sql-server – 如何使用Redis作为SQL Server的缓存?感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于sql-server – 如何使用Redis作为SQL Server的缓存?的详细内容,我们还将为您解答redis怎么缓存sql数据的相关问题,并且为您提供关于c# – SQLite作为SQL Server的内存数据库、DataGear 变更部署数据库为SQL Server填坑指南(含转写后的SQL server代码及SQL server配置文件)、Kubernetes SQL Server或Azure SQL Server PaaS Azure SQL数据库容器化的SQL Server、SQL Server - SQL Server 2019 启用SQL Server验证Super Administrator(sa)用户登录的有价值信息。

本文目录一览:

sql-server – 如何使用Redis作为SQL Server的缓存?(redis怎么缓存sql数据)

sql-server – 如何使用Redis作为SQL Server的缓存?(redis怎么缓存sql数据)

我有一些表格数据,由于不相关的问题证明是太慢,无法实时退出sql Server.当我们获得更多用户时,这只会变得更糟,所以我正在考虑使用Redis作为前端缓存来存储用户的表格可分页数据.

大约10分钟后,这个数据可能会变得陈旧,之后我想再次获得记录,并放入Redis.

该应用程序是一个.NET MVC应用程序.我在想,当用户登录到应用程序这个数据被拉出数据库(大约10秒钟),并放入Redis准备被MVC客户端使用.我会对该数据进行到期,然后当它变得陈旧时,它将从sql Server数据库中获取.

这听起来很合理吗?我有点害怕:

>用户可以在数据在Redis之前访问该页面
>如果Redis停止或不响应,我需要确保viewmodel可以从sql SErver直接获取,而Redis不在那里

解决方法

我会去服务栈redis实现,here都是所有的细节.与其他nosql相比,Redis在执行缓存时特别好.但是如果您有高读写应用程序,我将坚持将nosql数据库作为数据库与sql Server结合使用.这将有助于在可扩展性的情况下.

如有任何进一步细节请通知我.你只需要点火nuget命令,你几乎要运行.

c# – SQLite作为SQL Server的内存数据库

c# – SQLite作为SQL Server的内存数据库

我的设置类似于使用内存sqlite( http://mikhail.io/2016/02/unit-testing-dapper-repositories/)使用此lib测试sql Server的dapper调用: https://github.com/ServiceStack/ServiceStack.OrmLite

我正在为我的DAL使用dapper和ad hoc sql,并希望测试数据访问层而不依赖于sql Server.我使用了sqlite内存数据库.问题是sql语法和sqlite之间的sql语法不同.

例如,我有一个查询,使用offset和fetch next返回分页结果,但sqlite仅支持limit和offset.

如果您有任何建议让我在内存单元测试中做什么怎么办?我没有使用模拟db上下文的EF路由,因为dapper性能更高,并且不想使用存储过程,因为我也想测试我的sql.我不打算模拟我的数据库调用.

解决方法

Ormlite的Typed API与RDBMS无关,因此只要您坚持使用Ormlite的Typed API,您就可以通过更改连接字符串和方言提供程序轻松地在不同数据库之间切换,例如:

//sql Server
var dbFactory = new OrmliteConnectionFactory(connectionString,sqlServerDialect.Provider);

//InMemory sqlite DB
var dbFactory = new OrmliteConnectionFactory(":memory:",sqliteDialect.Provider);

然后,您可以使用任一数据库来创建,保留和查询POCO,例如:

using (var db = dbFactory.open())
{
    db.DropAndCreateTable<Poco>();
    db.Insert(new Poco { Name = name });
    var results = db.Select<Poco>(x => x.Name == name);
    results.PrintDump();
}

但是如果使用Custom SQL API’s to execute MSSQL-specific SQL你将无法对sqlite执行.您可以使用mockable support in OrmLite,但我个人建议坚持使用Ormlite的RDBMS不可知类型的API.

DataGear 变更部署数据库为SQL Server填坑指南(含转写后的SQL server代码及SQL server配置文件)

DataGear 变更部署数据库为SQL Server填坑指南(含转写后的SQL server代码及SQL server配置文件)

  • 1. 引言
  • 2. 配置数据库链接
  • 3. 引入数据库驱动
  • 4. 手动初始化数据库
  • 5. 改写SQL
  • 6. 其他
  • 7. 参考

1. 引言

DataGear默认使用Derby数据库作为系统的元数据库,至于待分析的业务库则支持MySQL、SQL Server等。
Derby数据库足以支持系统的数据集、图表、看板等对象的管理,且不需要安装数据库服务,但由于目前DataGear不支持单点登录集成,因此项目上为了便于用户认证信息的统一管理,以及DataGear数据库的备份等,将Derby变更为SQL Server,与待分析的业务数据库一致。
在变更操作过程中,参考了DataGear官方说明,操作时遇到一些坑,记录下来分享与大家。
不少内容是引用官方文档的,直接抄来了。
datagear架构图
gitee地址:
https://gitee.com/datagear/datagear

2. 配置数据库链接

在config/application.properties添加datasource.driverClassName、datasource.url、datasource.username、datasource.password配置项,配置新数据库连接。

  • MySQL
datasource.driverClassName=com.mysql.cj.jdbc.Driverdatasource.url=jdbc:mysql://localhost:3306/datageardatasource.username=datageardatasource.password=datagear
  • SQL Server
datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriverdatasource.url=jdbc:sqlserver://192.168.1.30:1433;SelectMethod=cursor;DatabaseName=datageardatasource.username=datageardatasource.password=datagear

3. 引入数据库驱动

在根目录下新建lib包,将JDBC驱动(sqljdbc4-4.0.jar)放入。
修改startup.bat为

java -Xbootclasspath/a:lib/sqljdbc4-4.0.jar -jar datagear-2.4.0.jar

4. 手动初始化数据库

此时运行startup,datagear将会按照配置的链接访问数据库,如果数据库配置以及驱动无误,则会进入下一步。
接着datagear检测到没有数据库,此时会自动创建数据库,使用的SQL是打包在jar文件中的,源码库路径为datagear-management/src/main/resources/org/datagear/management/ddl/datagear.sql。此SQL为Derby数据库,因此将执行失败。
扩展:可以用SQL server等数据库脚本替换了源码sql并打包,分发到项目上,项目上直接执行即可创建数据库,类似于Activity等的部署。
接着需要先改写Derby建库脚本为SQL server,改写后执行SQL,然后设置版本号,然后运行startup.bat即可。
坑:如果是新环境,DATAGEAR_VERSION(版本)表中的记录为空,此时按照官方说明执行SQL设置版本号将不起效。

UPDATE DATAGEAR_VERSION SET VERSION_VALUE=''当前版本号''

或许Derby支持数据不存在则insert的update骚操作,对于SQL server需要insert下。
此坑造成的效果时,启动时dategear查询到当前已有数据库,但版本为null,因此需要升级,且从头升级,于是执行打包的SQL。

5. 改写SQL

DataGear的(升级)SQL脚本非常漂亮,每个版本不论是否有SQL更新,都写有注释,供手工和自动执行时参考。

-------------------------------------------version[1.6.1], DO NOT EDIT THIS LINE!-----------------------------------------

如果是新环境,则需要从头执行到尾,如果是升级,则找到起始版本执行后边的SQL即可。

以下列举Derby转SQL server的几个常见操作。

  • TIMESTAMP,巨坑,SQL server也有该数据类型,但意义不一样,改为datetime
  • CURRENT_TIMESTAMP,当前时间,修改为(getdate()),获取当前时间
  • 函数按照SQLserver语法改写,变量填写@即可。函数实现Derby不支持的replace、取余操作,datagear采用了java扩展,SQL server直接用系统函数、操作符即可,不需要.net扩展
  • DATAGEAR_REPLACEREGEX,按官方说明,不必理睬即可,该正则表达式替换新版本中已废弃
  • RENAME COLUMN ,重命名列,按照SQL server语法替换
  • RENAME TABLE ,重命名表,按照SQL server语法替换
  • 表中加字段,ADD COLUMN 去掉column
  • ALTER COLUMN DS_TYPE SET NOT NULL;,修改列非空,SQL server需要找到原来的类型,一并修改。
  • VARCHAR(10000),SQL server支持到8K,修改为VARCHAR(8000)

修改后的SQL Server版SQL为:

-------------------------------------------version[1.0.0], DO NOT EDIT THIS LINE!-----------------------------------------if not exists (select * from sysobjects where name=''DATAGEAR_VERSION'' and xtype=''U'')CREATE TABLE DATAGEAR_VERSION (	VERSION_MAJOR VARCHAR(50),	VERSION_MINOR VARCHAR(50),	VERSION_REVISION VARCHAR(50),	VERSION_BUILD VARCHAR(50));goif not exists (select * from sysobjects where name=''DATAGEAR_USER'' and xtype=''U'')CREATE TABLE DATAGEAR_USER(	USER_ID VARCHAR(50) NOT NULL,	USER_NAME VARCHAR(50) NOT NULL,	USER_PASSWORD VARCHAR(200) NOT NULL,	USER_REAL_NAME VARCHAR(100),	USER_EMAIL VARCHAR(200),	USER_IS_ADMIN VARCHAR(20),	USER_CREATE_TIME DATETIME,	PRIMARY KEY (USER_ID),	UNIQUE (USER_NAME));go--alter table DATAGEAR_USER alter column USER_CREATE_TIME datetime;--无法更改列 ''USER_CREATE_TIME'',因为它是 ''timestamp''。--alter table DATAGEAR_USER drop column USER_CREATE_TIME;--alter table DATAGEAR_USER add USER_CREATE_TIME DATETIME;--the password is ''admin''INSERT INTO DATAGEAR_USER VALUES(''admin'', ''admin'', ''4c6d8d058a4db956660f0ee51fcb515f93471a086fc676bfb71ba2ceece5bf4702c61cefab3fa54b'', '''', '''', ''true'', default);if not exists (select * from sysobjects where name=''DATAGEAR_SCHEMA'' and xtype=''U'')CREATE TABLE DATAGEAR_SCHEMA(	SCHEMA_ID VARCHAR(50) NOT NULL,	SCHEMA_TITLE VARCHAR(100) NOT NULL,	SCHEMA_URL VARCHAR(200) NOT NULL,	SCHEMA_USER VARCHAR(200),	SCHEMA_PASSWORD VARCHAR(200),	SCHEMA_CREATE_USER_ID VARCHAR(50),	SCHEMA_CREATE_TIME DATETIME,	SCHEMA_SHARED VARCHAR(20),	DRIVER_ENTITY_ID VARCHAR(100),	PRIMARY KEY (SCHEMA_ID));--alter table DATAGEAR_SCHEMA drop column SCHEMA_CREATE_TIME;--alter table DATAGEAR_SCHEMA add SCHEMA_CREATE_TIME DATETIME;-------------------------------------------version[1.1.0], DO NOT EDIT THIS LINE!------------------------------------------------------------------------------------version[1.1.1], DO NOT EDIT THIS LINE!------------------------------------------------------------------------------------version[1.2.0], DO NOT EDIT THIS LINE!------------------------------------------------------------------------------------version[1.3.0], DO NOT EDIT THIS LINE!------------------------------------------------------------------------------------version[1.4.0], DO NOT EDIT THIS LINE!-----------------------------------------if not exists (select * from sysobjects where name=''DATAGEAR_ROLE'' and xtype=''U'')CREATE TABLE DATAGEAR_ROLE(	ROLE_ID VARCHAR(50) NOT NULL,	ROLE_NAME VARCHAR(100) NOT NULL,	ROLE_DESCRIPTION VARCHAR(200),	ROLE_ENABLED VARCHAR(10) NOT NULL,	ROLE_CREATE_TIME DATETIME,	PRIMARY KEY (ROLE_ID));--alter table DATAGEAR_ROLE drop column ROLE_CREATE_TIME;--alter table DATAGEAR_ROLE add ROLE_CREATE_TIME DATETIME;if not exists (select * from sysobjects where name=''DATAGEAR_ROLE_USER'' and xtype=''U'')CREATE TABLE DATAGEAR_ROLE_USER(	RU_ID VARCHAR(50) NOT NULL,	RU_ROLE_ID VARCHAR(50) NOT NULL,	RU_USER_ID VARCHAR(50) NOT NULL,	PRIMARY KEY (RU_ID));ALTER TABLE DATAGEAR_ROLE_USER ADD FOREIGN KEY (RU_ROLE_ID) REFERENCES DATAGEAR_ROLE (ROLE_ID) ON DELETE CASCADE;ALTER TABLE DATAGEAR_ROLE_USER ADD FOREIGN KEY (RU_USER_ID) REFERENCES DATAGEAR_USER (USER_ID) ON DELETE CASCADE;ALTER TABLE DATAGEAR_ROLE_USER ADD CONSTRAINT UK_RU_ROLE_USER_ID UNIQUE (RU_ROLE_ID, RU_USER_ID);if not exists (select * from sysobjects where name=''DATAGEAR_AUTHORIZATION'' and xtype=''U'')CREATE TABLE DATAGEAR_AUTHORIZATION(	AUTH_ID VARCHAR(50) NOT NULL,	AUTH_RESOURCE VARCHAR(200) NOT NULL,	AUTH_RESOURCE_TYPE VARCHAR(50) NOT NULL,	AUTH_PRINCIPAL VARCHAR(200) NOT NULL,	AUTH_PRINCIPAL_TYPE VARCHAR(50) NOT NULL,	AUTH_PERMISSION SMALLINT NOT NULL,	AUTH_ENABLED VARCHAR(10) NOT NULL,	AUTH_CREATE_TIME DATETIME,	AUTH_CREATE_USER_ID VARCHAR(50),	PRIMARY KEY (AUTH_ID));--alter table DATAGEAR_AUTHORIZATION drop column AUTH_CREATE_TIME;--alter table DATAGEAR_AUTHORIZATION add AUTH_CREATE_TIME DATETIME;go--自定义REPLACE函数--srcStr 原始字符串--oldStr 要替换的旧子串--newStr 要替换的新子串CREATE FUNCTION DATAGEAR_REPLACE(@srcStr VARCHAR(500), @oldStr VARCHAR(100), @newStr VARCHAR(100)) RETURNS VARCHAR(500)asbegin--PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA EXTERNAL NAME ''org.datagear.management.util.DerbyFunctionSupport.replace'';	return replace(@srcStr,@oldStr,@newStr);end;goif not exists (select * from sysobjects where name=''DATAGEAR_SQL_HISTORY'' and xtype=''U'')CREATE TABLE DATAGEAR_SQL_HISTORY(	SQLHIS_ID VARCHAR(50) NOT NULL,	SQLHIS_SQL VARCHAR(5000) NOT NULL,	SQLHIS_SCHEMA_ID VARCHAR(50) NOT NULL,	SQLHIS_USER_ID VARCHAR(50) NOT NULL,	SQLHIS_CREATE_TIME DATETIME DEFAULT GETDATE(),	PRIMARY KEY (SQLHIS_ID));--alter table DATAGEAR_SQL_HISTORY drop column SQLHIS_CREATE_TIME;--alter table DATAGEAR_SQL_HISTORY add SQLHIS_CREATE_TIME DATETIME;ALTER TABLE DATAGEAR_SQL_HISTORY ADD FOREIGN KEY (SQLHIS_SCHEMA_ID) REFERENCES DATAGEAR_SCHEMA (SCHEMA_ID) ON DELETE CASCADE;-------------------------------------------version[1.5.0], DO NOT EDIT THIS LINE!-------------------------------------------SQL数据集if not exists (select * from sysobjects where name=''DATAGEAR_SQL_DATA_SET'' and xtype=''U'')CREATE TABLE DATAGEAR_SQL_DATA_SET(	DS_ID VARCHAR(50) NOT NULL,	DS_NAME VARCHAR(100) NOT NULL,	DS_SCHEMA_ID VARCHAR(50) NOT NULL,	DS_SQL VARCHAR(1000) NOT NULL,	DS_CREATE_USER_ID VARCHAR(50),	DS_CREATE_TIME DATETIME,	PRIMARY KEY (DS_ID));-- alter table DATAGEAR_DATA_SET drop column DS_CREATE_TIME;-- alter table DATAGEAR_DATA_SET add DS_CREATE_TIME DATETIME;--该字段后需要删除,约束将限制其删除--ALTER TABLE DATAGEAR_SQL_DATA_SET ADD FOREIGN KEY (DS_SCHEMA_ID) REFERENCES DATAGEAR_SCHEMA (SCHEMA_ID);--数据集属性if not exists (select * from sysobjects where name=''DATAGEAR_DATA_SET_PROP'' and xtype=''U'')CREATE TABLE DATAGEAR_DATA_SET_PROP(	PROP_DS_ID VARCHAR(50) NOT NULL,	PROP_NAME VARCHAR(100) NOT NULL,	PROP_TYPE VARCHAR(50) NOT NULL,	PROP_LABEL VARCHAR(100),	PROP_ORDER INTEGER);ALTER TABLE DATAGEAR_DATA_SET_PROP ADD FOREIGN KEY (PROP_DS_ID) REFERENCES DATAGEAR_SQL_DATA_SET (DS_ID) ON DELETE CASCADE;ALTER TABLE DATAGEAR_DATA_SET_PROP ADD CONSTRAINT UK_DS_PROP_DS_ID_NAME UNIQUE (PROP_DS_ID, PROP_NAME);--数据集参数if not exists (select * from sysobjects where name=''DATAGEAR_DATA_SET_PAR'' and xtype=''U'')CREATE TABLE DATAGEAR_DATA_SET_PAR(	PAR_DS_ID VARCHAR(50) NOT NULL,	PAR_NAME VARCHAR(100) NOT NULL,	PAR_TYPE VARCHAR(100) NOT NULL,	PAR_REQUIRED VARCHAR(10),	PAR_DEFAULT_VALUE VARCHAR(200),	PAR_ORDER INTEGER);ALTER TABLE DATAGEAR_DATA_SET_PAR ADD FOREIGN KEY (PAR_DS_ID) REFERENCES DATAGEAR_SQL_DATA_SET (DS_ID) ON DELETE CASCADE; ALTER TABLE DATAGEAR_DATA_SET_PAR ADD CONSTRAINT UK_DS_PAR_DS_ID_NAME UNIQUE (PAR_DS_ID, PAR_NAME);--数据集输出if not exists (select * from sysobjects where name=''DATAGEAR_DATA_SET_EXPT'' and xtype=''U'')CREATE TABLE DATAGEAR_DATA_SET_EXPT(	EXPT_DS_ID VARCHAR(50) NOT NULL,	EXPT_NAME VARCHAR(100) NOT NULL,	EXPT_TYPE VARCHAR(50) NOT NULL,	EXPT_ORDER INTEGER);ALTER TABLE DATAGEAR_DATA_SET_EXPT ADD FOREIGN KEY (EXPT_DS_ID) REFERENCES DATAGEAR_SQL_DATA_SET (DS_ID) ON DELETE CASCADE;ALTER TABLE DATAGEAR_DATA_SET_EXPT ADD CONSTRAINT UK_DS_EXPT_DS_ID_NAME UNIQUE (EXPT_DS_ID, EXPT_NAME);--图表if not exists (select * from sysobjects where name=''DATAGEAR_HTML_CHART_WIDGET'' and xtype=''U'')CREATE TABLE DATAGEAR_HTML_CHART_WIDGET(	HCW_ID VARCHAR(50) NOT NULL,	HCW_NAME VARCHAR(100) NOT NULL,	HCW_PLUGIN_ID VARCHAR(100) NOT NULL,	HCW_UPDATE_INTERVAL INTEGER,	HCW_CREATE_USER_ID VARCHAR(50),	HCW_CREATE_TIME DATETIME,	PRIMARY KEY (HCW_ID));-- alter table DATAGEAR_HTML_CHART_WIDGET drop column HCW_CREATE_TIME;-- alter table DATAGEAR_HTML_CHART_WIDGET add HCW_CREATE_TIME DATETIME;--图表-数据集信息if not exists (select * from sysobjects where name=''DATAGEAR_HCW_DS'' and xtype=''U'')CREATE TABLE DATAGEAR_HCW_DS(	HCW_ID VARCHAR(50) NOT NULL,	DS_ID VARCHAR(50) NOT NULL,	DS_PROPERTY_SIGNS VARCHAR(500),	DS_ORDER INTEGER);ALTER TABLE DATAGEAR_HCW_DS ADD FOREIGN KEY (HCW_ID) REFERENCES DATAGEAR_HTML_CHART_WIDGET (HCW_ID) ON DELETE CASCADE;ALTER TABLE DATAGEAR_HCW_DS ADD FOREIGN KEY (DS_ID) REFERENCES DATAGEAR_SQL_DATA_SET (DS_ID) ON DELETE CASCADE;--看板if not exists (select * from sysobjects where name=''DATAGEAR_HTML_DASHBOARD'' and xtype=''U'')CREATE TABLE DATAGEAR_HTML_DASHBOARD(	HD_ID VARCHAR(50) NOT NULL,	HD_NAME VARCHAR(100) NOT NULL,	HD_TEMPLATE VARCHAR(100) NOT NULL,	HD_TEMPLATE_ENCODING VARCHAR(50),	HD_CREATE_USER_ID VARCHAR(50),	HD_CREATE_TIME DATETIME,	PRIMARY KEY (HD_ID));-- alter table DATAGEAR_HTML_DASHBOARD drop column HD_CREATE_TIME;-- alter table DATAGEAR_HTML_DASHBOARD add HD_CREATE_TIME DATETIME;-------------------------------------------version[1.6.0], DO NOT EDIT THIS LINE!-------------------------------------------ALTER TABLE DATAGEAR_HTML_DASHBOARD ALTER COLUMN HD_TEMPLATE SET DATA TYPE VARCHAR(500);-------------------------------------------version[1.6.1], DO NOT EDIT THIS LINE!------------------------------------------------------------------------------------version[1.7.0], DO NOT EDIT THIS LINE!-------------------------------------------自定义正则REPLACE函数,目前仅用于下面修改数据标记--srcStr 原始字符串--oldStr 要替换的正则表达式--newStr 要替换的新子串--CREATE FUNCTION DATAGEAR_REPLACEREGEX(srcStr VARCHAR(500), oldStr VARCHAR(100), newStr VARCHAR(100)) RETURNS VARCHAR(500)--PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA EXTERNAL NAME ''org.datagear.management.util.DerbyFunctionSupport.replaceRegex''; --扩充SQL字段ALTER TABLE DATAGEAR_SQL_DATA_SET ALTER COLUMN DS_SQL VARCHAR(8000);-------------------------------------------version[1.8.0], DO NOT EDIT THIS LINE!-------------------------------------------默认值字段改为描述字段--RENAME COLUMN DATAGEAR_DATA_SET_PAR.PAR_DEFAULT_VALUE TO PAR_DESC;exec sp_rename ''DATAGEAR_DATA_SET_PAR.PAR_DEFAULT_VALUE'',''PAR_DESC'' --移除数据集输出项表DROP TABLE DATAGEAR_DATA_SET_EXPT;--扩充图表数据集数据标记列ALTER TABLE DATAGEAR_HCW_DS ALTER COLUMN DS_PROPERTY_SIGNS VARCHAR(1000);--添加图表数据集别名列ALTER TABLE DATAGEAR_HCW_DS ADD DS_ALIAS VARCHAR(100);--添加图表数据集参数值列ALTER TABLE DATAGEAR_HCW_DS ADD DS_PARAM_VALUES VARCHAR(1000);-------------------------------------------version[1.8.1], DO NOT EDIT THIS LINE!------------------------------------------------------------------------------------version[1.9.0], DO NOT EDIT THIS LINE!----------------------------------------- -------------------------------------------version[1.10.0], DO NOT EDIT THIS LINE!-------------------------------------------添加数据集参数输入框类型ALTER TABLE DATAGEAR_DATA_SET_PAR ADD PAR_INPUT_TYPE VARCHAR(50);--添加数据集参数输入框载荷ALTER TABLE DATAGE

Kubernetes SQL Server或Azure SQL Server PaaS Azure SQL数据库容器化的SQL Server

Kubernetes SQL Server或Azure SQL Server PaaS Azure SQL数据库容器化的SQL Server

我将发表评论作为答案。

Azure SQL数据库

这是一项服务,可为您管理数据库的艰苦工作。 包括:

  • 备份和还原
  • 高可用性
  • 数据复制
  • 缩放
  • 选择合适的硬件
  • 始终保持最新状态,如果推出新版本,则可以提高兼容性级别,并可以使用新功能
  • 安全性
  • Azure AD集成
  • 索引建议
  • 弹性池
  • 天蓝色支持
  • 许可

您在Azure SQL数据库中无法做的事情

  • CLR:加载可从SQL Server执行的自定义.NET代码。
  • 跟踪标记
  • SQL代理作业(Elastic database jobs在预览中)
  • 更改数据捕获(cdc)
  • 跨数据库事务
  • 数据库邮件
  • 附加数据库
  • BACKUPRESTORE语句
  • 更改排序规则
  • 镜像
  • 快照
  • 一些DBCC语句
  • 一些DMV的
  • 链接服务器
  • 批量导入时的最小日志记录
  • OpenQuery / OpenDataSource
  • 资源总监
  • 服务经纪人
  • ...

请参见this comparison between Azure SQL Databases and Azure SQL Managed instances.

List of T-SQL differences

容器化的SQL Server

您只能运行Linux版本的SQL Server。其中仍然存在大量问题。 Azure照顾的所有事情,您需要做好自己的工作。它很新,所以您可能遇到一些以前从未见过的问题,但是社区正在不断发展。您还需要购买SQL Server许可证。

何时应使用容器化的SQL Server? 您想与云无关,能够切换云提供商。

目前,我不想在容器化的SQL Server上运行生产工作负载。当SQL Server Linux变得成熟时,这将会改变。

SQL Server - SQL Server 2019 启用SQL Server验证Super Administrator(sa)用户登录

SQL Server - SQL Server 2019 启用SQL Server验证Super Administrator(sa)用户登录

SQL Server 2019 启用SQL Server验证Super Administrator(sa)用户登录

 

在项目开发过程中通常连接SQL Server时需要用SQL Server方式,所以我们需要先开启这种验证方式,然后再根据需要添加项目用户,设定相关权限。

先用Windows身份验证方式连接数据库,然后按照如下几步设置,完成后重启服务,切换验证方式即可使用sa登录。

 

  作者:Jeremy.Wu
  出处:https://www.cnblogs.com/jeremywucnblog/
  本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

关于sql-server – 如何使用Redis作为SQL Server的缓存?redis怎么缓存sql数据的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于c# – SQLite作为SQL Server的内存数据库、DataGear 变更部署数据库为SQL Server填坑指南(含转写后的SQL server代码及SQL server配置文件)、Kubernetes SQL Server或Azure SQL Server PaaS Azure SQL数据库容器化的SQL Server、SQL Server - SQL Server 2019 启用SQL Server验证Super Administrator(sa)用户登录等相关知识的信息别忘了在本站进行查找喔。

本文标签: