云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

网站建设_云虚拟主机免费_便宜的

小七 141 0

网站建设_云虚拟主机免费_便宜的

最近发布的SQLAnywhere 17包含了各种各样的新功能,可以提高各种活动的性能,提高数据库服务器和客户端的安全性和健壮性,并提供一些新的工具来提高开发人员的工作效率。您可以在这里找到版本17的一个很好的概述。

为了充分理解版本17中的一些更改的应用和含义,我决定发布一些对所选功能的详细分析,将版本17与以前的版本进行比较,突出差异和改进,并尽可能提供与主题相关的最佳实践。我选择的第一个主题是自动提交。

自动提交是一个数据库客户端连接选项,用于控制何时为事务发出提交。当涉及到SQL Anywhere中的最佳实践时,建议尽可能关闭自动提交。这是因为提交操作会导致IO,而IO是传统RDBMS中最昂贵的操作之一。不使用自动提交通常会导致更少的提交,从而提高数据库服务器的性能。此外,创建和管理符合业务流程的事务可以让您更好地控制提交发生的时间,有助于确保数据库的状态与业务规则更加一致。

尽管不使用自动提交是首选,购返利,实际上,大多数应用程序都是在启用自动提交的情况下构建的。这有几个原因。在每次操作后提交通常更容易,而且对于开发人员来说,获得有关其数据库更改是否成功的即时反馈是很有吸引力的。此外,许多数据库接口默认打开自动提交,这意味着应用程序开发人员也默认构建自动提交样式的应用程序。一旦构建,有时很难重新构建应用程序来执行显式提交。

在版本17之前,如果应用程序打开自动提交,客户端api(例如ODBC,JDBC等)将在每个数据库请求之后发出一个显式的"COMMIT"。为了避免与服务器的这种额外通信并提高整体性能,在版本17中添加了一个新选项,名为(惊喜!)自动提交。默认情况下,该选项处于关闭状态,并且只能在连接期间在本地设置(即,大数据解决方案,不能设置公共自动提交选项)。但是,如果应用程序将自动提交选项设置为打开,然后SQLAnywhere服务器将在每次请求后自动提交。

所有SQLA客户端接口都已更新,以自动利用此新选项。当应用程序为每个驱动程序发出相应的AutoCommit API调用时,如果连接到17版服务器,17版sqlanywhere ODBC、JDBC和OLEDB驱动程序会自动设置新的auto\u commit选项。如果目标服务器版本为16或更低,物联网公司,这些驱动程序将恢复为在客户端处理自动提交。对于以前不支持autocommit的api(例如ESQL),这些应用程序现在可以使用新的auto\u commit选项使服务器在每次执行后自动提交(如果需要)。

下面的示例告诉服务器在每次请求后自动提交:

设置临时选项auto\u commit='ON'

以确定此选项对性能的影响,我使用SQL Anywhere附带的PerformanceInsert示例运行了一个简单的测试。我使用了一个带有单个整数主键列的表,并在笔记本电脑上插入了100000行。

创建表ins(c1整数非空主键);

首先我用1个commit运行测试(在测试结束时):

instest-cdba,sql-o输入输出-r100000-x-v1

我的第二次测试运行是在每行之后提交:

instest-cdba,sql-o输入输出-r 100000-x-v 1-m 1

对于我的第三次测试,我修改了instest的源代码,在连接到数据库后添加了一个打开自动提交的命令:

EXEC SQL EXECUTE IMMEDIATE'SET TEMPORARY OPTION auto_commit=on';

…然后我在没有显式提交的情况下运行测试:

instest-cdba,SQL-o输入输出-r 100000-x-v 1

以下是结果:

如我们所见,中国电信物联网,不承诺每次操作后都会对性能产生巨大影响。但是,如果应用程序在同一台计算机连接上使用自动提交,则测试表明,在每次操作后让客户端发出提交之间,性能提高了约13%,或者让服务器在每次操作后自动执行提交操作。如果我们使用网络服务器和tcpip,则差异更为明显,性能相差约17%(下图)

*因为服务器正在执行提交操作,instest程序无法分离提交和插入执行时间

的实验室测试其他场景(包括更多混合工作负载活动)显示,当使用服务器端自动提交选项而不是基于客户端的自动提交操作时,提交操作的性能提高了25-30%。

自动提交选项与数据库链接选项非常不同。设置chained=OFF将强制服务器在服务器中执行的每条语句(包括过程中的每条语句)之后提交,而设置auto\u commit ON将强制服务器仅在客户端的每条语句之后提交。在过程的情况下,当auto\u commit处于启用状态时,提交将在整个过程完成执行之后发生。

,物联网应用技术是什么