主要内容

splitsqlquery

将SQL查询使用分页

描述

例子

querybasket= splitsqlquery (康涅狄格州,sqlquery)将一个SQL查询分为一篮子多个SQL查询。缺省情况下,每个SQL查询在一批篮子返回100000行。SQL查询的结果数量在篮子里的大小取决于原始SQL查询的结果。

例子

querybasket= splitsqlquery (康涅狄格州,sqlquery“SplitSize”,splitsize)指定一个自定义批量大小的每个SQL查询返回的行数的篮子里。

例子

全部折叠

确定最低的到来推迟使用大量的飞行数据存储在数据库中。在一个串行MATLAB®环境中访问数据库。

使用splitsqlquery功能,您可以将原始SQL查询分为多个SQL查询页面。然后,您可以访问大量数据块使用获取函数。

要运行这个例子,您必须配置一个JDBC数据源。有关更多信息,请参见configureJDBCDataSource函数。

创建一个数据库连接到JDBC数据源MSSQLServerJDBCAuth。这个数据源配置JDBC驱动程序到Microsoft®SQL Server使用Windows®®数据库的身份验证。指定一个空白的用户名和密码。

数据源=“MSSQLServerJDBCAuth”;用户名=”“;密码=”“;康涅狄格州=数据库(数据源、用户名、密码);

定义一个SQL查询选择的所有列airlinesmall表,其中包含123523行和29个列。

sqlquery =“SELECT * FROM airlinesmall”;

原始SQL查询分割成多个页面查询和显示。

sqlquery querybasket = splitsqlquery(康涅狄格州)
querybasket = 2×1的字符串数组" SELECT * FROM (SELECT * FROM airlinesmall)临时订单1抵消0行获取下一个100000行只有”“SELECT * (SELECT * FROM airlinesmall)临时订单1抵消100000行获取下一个23523行”

篮子里的查询页面查询字符串数组。的splitsqlquery函数将使用默认的查询的行数(100000)。

定义airlinesdata变量。

airlinesdata = [];

定义的最小延迟到来minArrDelay变量。

minArrDelay = [];

执行SQL查询页面querybasket通过使用一个循环,并导入数据块。页面执行SQL查询中查询篮子,进口大型数据使用获取函数。查找和存储每个块的局部最小值的到来推迟。

i = 1:长度(querybasket) local_airlinesdata =获取(康涅狄格州,querybasket(我));local_minArrDelay = min (local_airlinesdata.ArrDelay);minArrDelay = [minArrDelay;local_minArrDelay];结束

找到最低的到来推迟从所有存储延迟。

minArrDelay = min (minArrDelay)
minArrDelay = -64

关闭数据库连接。

关上(康涅狄格州)

确定最低的到来推迟使用大量的飞行数据存储在数据库中。使用并行访问数据库池。

初始化一个平行与JDBC数据库连接池,您必须配置一个JDBC数据源。有关更多信息,请参见configureJDBCDataSource函数。

使用splitsqlquery功能,您可以将原始SQL查询分为多个SQL查询页面。然后,您可以访问大量数据块通过执行每个SQL查询页面在一个单独的工人在游泳池里。

进口大型数据时,性能依赖于SQL查询的数据量,机器规格,和类型的数据分析。管理性能,使用splitsize输入参数的splitsqlquery函数。

如果你有一个MATLAB®并行服务器™许可证,然后使用parpool(并行计算工具箱)函数与集群的配置文件,而不是你的选择gcp(并行计算工具箱)函数。

创建一个数据库连接到JDBC数据源MSSQLServerJDBCAuth。这个数据源配置JDBC驱动程序到Microsoft®SQL Server使用Windows®®数据库的身份验证。指定一个空白的用户名和密码。

数据源=“MSSQLServerJDBCAuth”;用户名=”“;密码=”“;康涅狄格州=数据库(数据源、用户名、密码);

定义一个SQL查询选择的所有列airlinesmall表,其中包含123523行和29个列。

sqlquery =“SELECT * FROM airlinesmall”;

原始SQL查询分割成多个页面查询和显示。指定一个分裂的大小10000行。

splitsize = 10000;sqlquery querybasket = splitsqlquery(康涅狄格州,“SplitSize”splitsize)
querybasket = 13×1的字符串数组“SELECT * (SELECT * FROM airlinesmall)临时订单1抵消0行获取下一个10000行只有”“SELECT * (SELECT * FROM airlinesmall)临时订单1抵消10000行获取下一个10000行只有”“SELECT * (SELECT * FROM airlinesmall)临时订单1抵消20000行获取下一个10000行只有”“SELECT * (SELECT * FROM airlinesmall)临时订单1抵消30000行获取下一个10000行只有”“SELECT * (SELECT * FROM airlinesmall)临时订单1抵消40000行获取下一个10000行只有”“SELECT * (SELECT * FROM airlinesmall)临时订单1抵消50000行获取下一个10000行只有”“SELECT * (SELECT * FROM airlinesmall)临时订单1抵消60000行获取下一个10000行只有”“SELECT * (SELECT * FROM airlinesmall)临时订单1抵消70000行获取下一个10000行只有”“SELECT * (SELECT * FROM airlinesmall)临时订单1抵消80000行获取下一个10000行只有”“SELECT * (SELECT * FROM airlinesmall)临时订单1抵消90000行获取下一个10000行只有”“SELECT * (SELECT * FROM airlinesmall)临时订单1抵消100000行获取下一个10000行只有”“SELECT * (SELECT * FROM airlinesmall)临时订单1抵消110000行获取下一个10000行只有”“SELECT * (SELECT * FROM airlinesmall)临时订单1抵消120000行获取下一个3523行”

篮子里的查询页面查询字符串数组。每个SQL查询在篮子里,除了最后一个,返回10000行。

关闭数据库连接。

关上(康涅狄格州)

开始平行池。

池=质量;
开始平行池(parpool)使用“本地”概要文件…连接到平行池(工人数量:6)。

初始化并行池使用JDBC数据源。

c = createConnectionForPool(池、数据源、用户名、密码);

定义airlinesdata变量。

airlinesdata = [];

定义的最小延迟到来minArrDelay变量。

minArrDelay = [];

使用parfor函数并行化数据访问使用查询篮子里。

为每个工作人员:

  • 获取数据库连接对象。

  • 执行的SQL查询页面查询本地篮子和导入数据。

  • 找到当地最低的到来推迟。

  • 存储局部最小值到达延迟。

parfori = 1:长度(querybasket)康涅狄格州= c.Value;local_airlinesdata =获取(康涅狄格州,querybasket(我));local_minArrDelay = min (local_airlinesdata.ArrDelay);minArrDelay = [minArrDelay;local_minArrDelay];结束

找到最低的到来推迟使用存储延迟从每个工人。

minArrDelay = min (minArrDelay)
minArrDelay = -64

近平行池。

删除(池)

输入参数

全部折叠

数据库连接,指定为一个连接对象创建数据库函数,连接对象创建mysql函数,连接对象创建postgresql函数,或sqlite对象。

SQL语句,指定为一个特征向量或字符串标量。

关于SQL查询语言的信息,请参阅SQL教程

例子:从发票选择*选择所有行和列发票表。

数据类型:字符|字符串

SQL查询分大小,指定为数字标量。指定这个数字一个SQL查询拆分为一个自定义为每个批处理的行数。

如果总从原始SQL查询返回的行数小于100000(默认),然后splitsqlquery函数返回原始SQL查询。用这个输入参数指定一个较小的批处理的行数。

数据类型:

输出参数

全部折叠

SQL查询篮子里,作为一个字符串数组返回。篮子中的每个SQL查询返回字符串数组作为字符串标量。

您可以执行每个SQL查询使用的篮子里获取函数。或者,您可以运行一个平行的池和分配每个员工执行SQL查询。

限制

  • splitsqlquery功能仅支持这些数据金宝app库:

    • 微软®SQL Server®2012年,后来

    • 甲骨文®

    • MySQL®

    • PostgreSQL

    • SQLite

    • 亚马逊红移®

    • 亚马逊极光®

    • 谷歌®云SQL运行MySQL或PostgreSQL实例

    • MariaDB®

    如果连接对象使用一个不受支持的数据库金宝appsplitsqlquery函数显示一个警告和返回原始SQL查询。

  • splitsqlquery不支持MATLAB函数金宝app®接口SQLite。

版本历史

介绍了R2017b

另请参阅

||||(并行计算工具箱)|(并行计算工具箱)|(并行计算工具箱)|(并行计算工具箱)

外部网站