`

《Pro Oracle SQL》Chapter 10.2.5 Applying Subquery Factoring to PL/SQL

阅读更多

Applying Subquery Factoring to PL/SQL  在PL/SQL中运用子查询分解
    Even PL/SQL can present golden opportunities for optimization using subquery factoring. Something
that most of us have done at one time or another is to write a PL/SQL routine when we cannot figure out
how to do what we want in a single SQL query. Sometimes it can be very difficult to capture everything
in a single statement. It’s often just easier to think procedurally rather than in sets of data, and just write
some code to do what we need. As you gain experience, you will rely less and less on thinking in terms of
“How would I code this in PL/SQL?” and more along the lines of “How do I capture this problem in a
single SQL statement?”
The more advanced features that Oracle has packed into SQL can help as well.
    即使在PL/SQL中子查询分解也有绝好的时机一显身手。有时候我们能一次做好一件事,而当不能想出用一条SQL解决想要的问题的时候,就会写PL /SQL程序。有时候,在一条SQL中获取所有是非常困难的。通常过程化的思维较数据集合的要容易,且只要这样写我们需要的代码即可。随着你经验的积累, 你将越来越少的依照“我将如何用PL/SQL编码”而更倾向于“我如何能用一条SQL语句解决这个问题”? Oracle封装于SQL中的越来越多的高级特性也将有作为。
    Here’s an example. You’ve been asked to create a report with the following criteria:
•  Only include customers that have purchased products in at least three different years.
•  Compute total aggregate sales per customer, broken down by product category.

    这里是一个例子,要求你按照如下标准创建一个报告:
   只包含至少在三个不同年份购买产品的顾客。
   计算每个顾客总的聚合销售额,按产品目录分

   At first, this doesn’t seem too difficult. But you may struggle for a bit trying to capture this in one
SQL statement, so you decide to use a PL/SQL routine to get the needed data. The results may be similar
to those in Listing 10-10. The logic is simple. Find all customers that fit the criteria and store their IDs in
a temporary table. Then loop through the newly saved customer IDs and find all their sales, sum them
up, and add them to another temporary table. The results are then joined to the CUSTOMERS and
PRODUCTS tables to generate the report.
    最初,这似乎不太难。但是你可能会苦恼试图用一句SQL获取,因此你决定用PL/SQL程序获取所需的数据。结果可能相似于列表10-10所示。逻辑较简 单。找出所有顾客匹配标准的顾客再存储他们的ID到临时表。再遍历新保存的顾客ID找出他们所有的销售额,汇总,再把它们加到另一个临时表。结果再连接到 CUSTOMERS和products表产生报告。
Listing 10-10. PL/SQL to Generate Customer Report
SQL> create global temporary table cust3year ( cust_id number );
Table created.
SQL> create global temporary table sales3year(
2 cust_id number ,
3 prod_category varchar2(50),
4 total_sale number
5 )
6 /
Table created.
SQL> begin
2 execute immediate 'truncate table cust3year';
3 execute immediate 'truncate table sales3year';
4
5 insert into cust3year
6 select cust_id --, count(cust_years) year_count
7 from (
8 select distinct cust_id, trunc(time_id,'YEAR') cust_years
9 from sh.sales
10 )
11 group by cust_id
12 having count(cust_years) >= 3;
13
14 for crec in ( select cust_id from cust3year)
15 loop
16 insert into sales3year
17 select s.cust_id,p.prod_category, sum(co.unit_price * s.quantity_sold)
18 from sh.sales s
19 join sh.products p on p.prod_id = s.prod_id
20 join sh.costs co on co.prod_id = s.prod_id
21 and co.time_id = s.time_id
22 join sh.customers cu on cu.cust_id = s.cust_id
23 where s.cust_id = crec.cust_id
24 group by s.cust_id, p.prod_category;
25 end loop;
26 end;
27 /
PL/SQL procedure successfully completed.
Elapsed: 00:01:17.48
SQL> break on report
SQL> compute sum of total_sale on report
SQL> select c3.cust_id, c.cust_last_name, c.cust_first_name, s.prod_category, s.total_sale
2 from cust3year c3
3 join sales3year s on s.cust_id = c3.cust_id
4 join sh.customers c on c.cust_id = c3.cust_id
5 order by 1,4;
CUST ID        LAST NAME           FIRST NAME               PRODUCT                     CATEGORY        TOTAL SALE
---------          ---------------             ---------------                ------------------------------    ---------------
6                  Charles                    Harriett                         Electronics                      2,838.57
6                  Charles                    Harriett                         Hardware                       19,535.38
...
50833            Gravel                    Grover                          Photo                              15,469.64
50833            Gravel                    Grover                           Software/Other                9,028.87
                                                                                                                                 ---------------
                                                                                                          sum                 167,085,605.71
16018 rows selected.

    The code in Listing 10-10 is fairly succinct, and it only takes 1:17 minutes to run. That’s not too bad,
is it? While this is a nice little chunk of PL/SQL, take another look at it and think in terms of subfactored
subqueries. The section that determines the correct customer IDs can be captured in a WITHclause fairly
easily. Once the customers are identified, it is a fairly easy job to then use the results of the subquery to
lookup the needed sales, product, and customer information to create the report.
    在列表10-10中的代码相当简洁,只花费了1:17分运行。不太糟糕,是么?虽然这是一小段PL/SQL,换个角度,从子查询分解的角度看它。确定正确 的顾客ID的那段可用WITH子句相当容易的捕获。一旦顾客确认了,接下来的工作就容易了,使用子查询的结果查找所需的sales,product,和顾客信息创建报告。
    Listing 10-11 has a single SQL statement that captures what is done with the PL/SQL routine from
Listing 10-10—without the need to manually create temporary tables or use PL/SQL loops. Should the
use of temporary tables make for a more efficient query, Oracle will do so automatically, or you can
choose how Oracle preserves the subquery results via the INLINE and MATERIALIZE hints. It is somewhat
more efficient, too, with an elapsed time of 6.13 seconds.
    列表10-11是一条SQL语句完成了列表10-10的PL/SQL程序完成的任务--而不需要手动的创建临时表或使用PL/SQL循环。使用临时表本该 使得查询更有效率,Oracle将自动的完成,或者你可选择Oracle阻止子查询结果通过INLINE和MATERIALIZE提示。 它更有效率,只耗时6.13s 。
    The WITH clause in Listing 10-11 actually uses two subqueries. These could be combined into a
single query, but I thought it easier to read broken out into two queries. Notice the use of the EXTRACT()
function—it simplifies comparing years by extracting the year from a date and converting it to an
integer.

    在列表10-11中的WITH子句实际使用了两个子查询。本可以组成一个单独的查询,但是我想它分成两个查询更容易读。注意使用EXTRACT()函数--它简化比较years通过从数据中提取年份再转换它成一个整数。
Listing 10-11. Use WITH Clause to Generate Customer Report
1 with custyear as (
2 select cust_id, extract(year from time_id) sales_year
3 from sh.sales
4 where extract(year from time_id) between 1998 and 2002
5 group by cust_id, extract(year from time_id)
6 ),
7 custselect as (
8 select distinct cust_id
9 from (
10 select cust_id, count(*) over ( partition by cust_id) year_count
11 from custyear
12 )
13 where year_count >= 3 -- 3 or more years as a customer during period
14 )
15 select cu.cust_id, cu.cust_last_name, cu.cust_first_name, p.prod_category,
sum(co.unit_price * s.quantity_sold) total_sale
16 from custselect cs
17 join sh.sales s on s.cust_id = cs.cust_id
18 join sh.products p on p.prod_id = s.prod_id
19 join sh.costs co on co.prod_id = s.prod_id
20 and co.time_id = s.time_id
21 join sh.customers cu on cu.cust_id = cs.cust_id
22 group by cu.cust_id, cu.cust_last_name, cu.cust_first_name, p.prod_category
23 order by cu.cust_id;
CUST ID     LAST NAME     FIRST NAME            PRODUCT                   CATEGORY            TOTAL SALE
---------        ---------------       ---------------           ------------------------------   ---------------
6                 Charles            Harriett                   Electronics                      2,838.57
6                 Charles            Harriett                   Hardware                        19,535.38
...
50833         Gravel               Grover                   Photo                              15,469.64
50833         Gravel               Grover                   Software/Other                 9,028.87
                                        ---------------
                                       sum                               167,085,605.71
16018 rows selected.
Elapsed: 00:00:06.13

    The SQL examples in this section of the chapter are not meant to be tuning exercises, but merely
demonstrations showing how subquery factoring may be used. When refactoring legacy SQL to take
advantage of the WITH clause, be sure to test the results. Subquery factoring can be used to better
organize some queries, and in some cases can even be used as an optimization tool. Learning to use it
adds another tool to your Oracle toolbox.
    本节的SQL例子不是调优实践,而仅仅演示如何使用子查询分解。当利用WITH子句重构历史遗留的SQL时,确保测试了结果。子查询分解可用于更好组织某些查询,某些情况下可作为一个优化工具。学习使用它又为你Oracle工具箱增加了一把工具。

EXPERIMENT WITH SUBQUERY FACTORING  子查询分解实验
     Included in this chapter are two scripts in the Exercises folder that you may want to experiment with.
These scripts both run against the SH demo schema.
    在本章的Exercises文件夹中包含两个脚本,你可用于实验。这两个脚本都运行在SH演示模式下。
    Run these scripts with both the MATERIALIZE and INLINE hints to compare performance. In the tsales
subquery, a WHERE clause limits the data returned to a single year. Comment out the WHERE clause and
run the queries again. How does the efficiency of the two hints compare now? Would you feel
comfortable using these hints when the size of the data set is set at runtime by user input?
    用MATERIALIZE和INLINE提示运行这两个脚本比较性能。在tsales子查询中,WHERE子句限制返回单个年的数据。注释掉WHERE子 句再次运行。现在两个提示的效率相比如何?当数据集的大小由运行时用户输入确定时,你是否对这些提示的使用感到满意。
•  Exercises/l_10_exercise_1.sql
•  Exercises/l_10_exercise_2.sql

0
0
分享到:
评论

相关推荐

    【NLP 66、实践 ⑰ 基于Agent + Prompt优化进行文章优化】

    【NLP 66、实践 ⑰ 基于Agent + Prompt优化进行文章优化】

    梦限大mewtype成员 藤都子RVC模型

    考虑微网新能源经济消纳的共享储能优化配置附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    tokenizers-0.30.0.jar中文文档.zip

    # 【tokenizers-***.jar***文档.zip】 中包含: ***文档:【tokenizers-***-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【tokenizers-***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【tokenizers-***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【tokenizers-***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【tokenizers-***-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本文件关键字: tokenizers-***.jar***文档.zip,java,tokenizers-***.jar,ai.djl.huggingface,tokenizers,***,ai.djl.engine.rust,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,djl,huggingface,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【tokenizers-***.jar***文档.zip】,再解压其中的 【tokenizers-***-javadoc-API文档-中文(简体)版.zip】,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件; # Maven依赖: ``` <dependency> <groupId>ai.djl.huggingface</groupId> <artifactId>tokenizers</artifactId> <version>***</version> </dependency> ``` # Gradle依赖: ``` Gradle: implementation group: 'ai.djl.huggingface', name: 'tokenizers', version: '***' Gradle (Short): implementation 'ai.djl.huggingface:tokenizers:***' Gradle (Kotlin): implementation("ai.djl.huggingface:tokenizers:***") ``` # 含有的 Java package(包): ``` ai.djl.engine.rust ai.djl.engine.rust.zoo ai.djl.huggingface.tokenizers ai.djl.huggingface.tokenizers.jni ai.djl.huggingface.translator ai.djl.huggingface.zoo ``` # 含有的 Java class(类): ``` ai.djl.engine.rust.RsEngine ai.djl.engine.rust.RsEngineProvider ai.djl.engine.rust.RsModel ai.djl.engine.rust.RsNDArray ai.djl.engine.rust.RsNDArrayEx ai.djl.engine.rust.RsNDArrayIndexer ai.djl.engine.rust.RsNDManager ai.djl.engine.rust.RsSymbolBlock ai.djl.engine.rust.RustLibrary ai.djl.engine.rust.zoo.RsModelZoo ai.djl.engine.rust.zoo.RsZooProvider ai.djl.huggingface.tokenizers.Encoding ai.djl.huggingface.tokenizers.HuggingFaceTokenizer ai.djl.huggingface.tokenizers.HuggingFaceTokenizer.Builder ai.djl.hu

    人形机器人是当今世界科技领域最具潜力和前景的产业之一 随着科技的不断进步和人工智能技术的快速发展,人形机器人作为未来产业的新赛道和经济增长的新引擎,将深刻变革人类生产生活方式,重塑全球产业发展格局

    人形机器人产业的发展需要人工智能、高端制造、新材料等先进技术的协同创新和突破。

    【状态估计】用于非标量系统估计的最优卡尔曼滤波附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    开关电源的尖峰干扰及其抑制.zip

    开关电源的尖峰干扰及其抑制.zip

    房地产培训 -新进业务员压马路市调培训.ppt

    房地产培训 -新进业务员压马路市调培训.ppt

    MATLAB实现计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度

    内容概要:本文探讨了基于MATLAB平台的虚拟电厂优化调度方法,特别关注电转气(P2G)协同、碳捕集技术和垃圾焚烧的应用。文中介绍了虚拟电厂的概念及其重要性,详细解释了碳捕集、需求响应和电转气协同调度的关键技术,并展示了如何使用MATLAB和CPLEX求解器进行优化调度的具体步骤。通过定义决策变量、构建目标函数和设定约束条件,最终实现了多目标优化,即经济性最优和碳排放最低。此外,还讨论了一些常见的代码实现技巧和潜在的问题解决方案。 适合人群:从事能源管理和优化调度研究的专业人士,尤其是那些熟悉MATLAB编程和优化算法的人士。 使用场景及目标:适用于希望深入了解虚拟电厂运作机制和技术实现的研究人员和工程师。主要目标是通过优化调度提高能源利用效率,减少碳排放,降低成本。 其他说明:文章提供了详细的代码片段和理论分析,有助于读者更好地理解和复现实验结果。同时,强调了在实际应用中需要注意的一些细节问题,如约束条件的平衡、求解器配置等。

    在网格化数据集上轻松执行 2D 高通、低通、带通或带阻滤波器研究附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    spring-ai-pinecone-store-1.0.0-M7.jar中文-英文对照文档.zip

    # 【spring-ai-pinecone-store-1.0.0-M7.jar中文-英文对照文档.zip】 中包含: 中文-英文对照文档:【spring-ai-pinecone-store-1.0.0-M7-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【spring-ai-pinecone-store-1.0.0-M7.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【spring-ai-pinecone-store-1.0.0-M7.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【spring-ai-pinecone-store-1.0.0-M7.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【spring-ai-pinecone-store-1.0.0-M7-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本文件关键字: spring-ai-pinecone-store-1.0.0-M7.jar中文-英文对照文档.zip,java,spring-ai-pinecone-store-1.0.0-M7.jar,org.springframework.ai,spring-ai-pinecone-store,1.0.0-M7,org.springframework.ai.vectorstore.pinecone,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,springframework,spring,ai,pinecone,store,中文-英文对照API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【spring-ai-pinecone

    基于MATLAB混合整数规划的微网电池储能容量优化配置

    内容概要:本文详细介绍了如何使用MATLAB及其优化工具箱,通过混合整数规划(MILP)方法对微网电池储能系统的容量进行优化配置。主要内容包括定义目标函数(如最小化运行成本),设置约束条件(如充放电功率限制、能量平衡约束),并引入决策变量(如电池容量、充放电功率和状态)。文中提供了具体的MATLAB代码示例,演示了如何将实际问题转化为数学模型并求解。此外,还讨论了一些实用技巧,如避免充放电互斥冲突、考虑电池寿命损耗等。 适用人群:从事微电网设计与运维的技术人员,尤其是那些希望通过优化算法提高系统性能和经济效益的专业人士。 使用场景及目标:适用于需要确定最佳电池储能容量的微电网项目,旨在降低总体运行成本,提高系统的稳定性和可靠性。具体应用场景包括工业园区、商业建筑或其他分布式能源系统。 其他说明:文章强调了模型的实际应用价值,并指出通过精确控制充放电策略可以显著减少不必要的容量闲置,从而节省大量资金。同时提醒读者注意模型的时间粒度选择、电池退化成本等因素的影响。

    langchain4j-ollama-1.0.0-beta1.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    光伏离网并网逆变器设计:基于TMS320F28335的数字控制与SPWM技术详解

    内容概要:本文详细介绍了基于TMS320F28335的光伏离网并网逆变器设计方案,涵盖了从硬件架构到软件控制的各个方面。首先,文章阐述了TMS320F28335作为高性能DSP的优势及其初始化配置方法。其次,探讨了逆变器的数字控制策略,如双闭环控制(电压外环和电流内环)的具体实现方式。然后,深入讲解了SPWM(正弦脉宽调制)技术,包括SPWM波的生成方法和相关代码示例。此外,还讨论了硬件保护逻辑、过流检测、死区时间配置等实际应用中的注意事项。最后,提供了调试经验和学习资源建议。 适合人群:从事光伏逆变器设计、嵌入式系统开发的技术人员,尤其是有一定DSP编程基础的研发人员。 使用场景及目标:适用于需要深入了解光伏逆变器设计原理和技术实现的研究人员和工程师。主要目标是掌握基于TMS320F28335的逆变器控制系统设计,包括数字控制策略和SPWM技术的应用。 其他说明:文中提供的代码示例和实践经验有助于读者更好地理解和应用于实际项目中。建议读者结合TI官方提供的学习资料进行进一步学习和实践。

    【医疗影像分析】深度学习技术在医疗影像分析中的应用优势及未来发展方向:自动特征学习、高精度高效处理、多模态数据融合、个性化治疗与预测、实时远程支持

    内容概要:深度学习在医疗影像分析中展现出显著的优势,主要体现在自动特征学习、高准确性和效率、多模态数据融合与综合分析、个性化治疗与预测、减少主观性、处理复杂和高维数据、实时分析与远程医疗支持、数据挖掘与科研突破以及可扩展性与持续优化九个方面。通过卷积神经网络(CNN)、U-Net等模型,深度学习能够自动从影像中提取多层次特征,无需手动干预,在分类、分割任务中表现出色,处理速度远超人工。此外,它还能够整合多源数据,提供全面的诊断依据,实现个性化治疗建议,减少误诊和漏诊,支持实时分析和远程医疗,挖掘病理模式并加速研究,同时具有可扩展性和持续优化的能力。; 适合人群:医疗行业从业者、科研人员、计算机视觉和深度学习领域的研究人员。; 使用场景及目标:①用于医疗影像的自动特征提取和分类,如乳腺癌筛查、皮肤癌诊断等;②整合多模态数据,如CT、MRI等,提高诊断准确性;③提供个性化治疗建议,优化治疗方案;④支持实时分析和远程医疗,尤其适用于偏远地区的急诊场景;⑤挖掘病理模式,加速疾病机制的研究。; 其他说明:深度学习正逐渐成为医疗影像分析的核心诊断伙伴,未来发展方向包括增强可解释性、保护数据隐私和轻量化部署,旨在进一步提升医疗效率和患者护理质量。

    深度学习机器学习子领域关键技术解析:神经网络基础、常见架构及应用场景综述

    内容概要:深度学习是机器学习的一个子领域,通过构建多层次的“深度神经网络”来模拟人脑结构,从而学习和提取数据的复杂特征。文章介绍了深度学习的核心概念,包括神经元、多层感知机、深度神经网络(DNN)、卷积神经网络(CNN)、循环神经网络(RNN)和Transformer等常见网络结构。同时,详细讲解了激活函数、损失函数与优化器的作用。此外,还探讨了深度学习的关键突破,如大数据与算力的支持、正则化技术和迁移学习的应用。文中列举了深度学习在计算机视觉、自然语言处理、语音与音频以及强化学习等领域的应用场景,并指出了其面临的挑战,如数据依赖、计算成本和可解释性问题。最后提供了使用PyTorch和TensorFlow/Keras框架的经典代码示例,涵盖图像分类、文本生成和迁移学习等内容。; 适合人群:对机器学习有一定了解,希望深入学习深度学习理论和技术的研究人员、工程师及学生。; 使用场景及目标:①理解深度学习的基本原理和核心概念;②掌握常见深度学习框架的使用方法,如PyTorch和TensorFlow;③能够根据具体应用场景选择合适的网络结构和算法进行实践。; 其他说明:本文不仅提供了理论知识,还附带了详细的代码示例,便于读者动手实践。建议读者结合理论与实践,逐步深入理解深度学习的各个方面。

    深度学习答辩PPT案例展示

    适用于理工专业的毕业生,毕业答辩时可供参考,叙述详细准确,可以作为自己答辩PPT的参考

    tokenizers-0.22.1.jar中文-英文对照文档.zip

    # 【tokenizers-***.jar***文档.zip】 中包含: ***文档:【tokenizers-***-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【tokenizers-***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【tokenizers-***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【tokenizers-***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【tokenizers-***-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本文件关键字: tokenizers-***.jar***文档.zip,java,tokenizers-***.jar,ai.djl.huggingface,tokenizers,***,ai.djl.engine.rust,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,djl,huggingface,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【tokenizers-***.jar***文档.zip】,再解压其中的 【tokenizers-***-javadoc-API文档-中文(简体)版.zip】,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件; # Maven依赖: ``` <dependency> <groupId>ai.djl.huggingface</groupId> <artifactId>tokenizers</artifactId> <version>***</version> </dependency> ``` # Gradle依赖: ``` Gradle: implementation group: 'ai.djl.huggingface', name: 'tokenizers', version: '***' Gradle (Short): implementation 'ai.djl.huggingface:tokenizers:***' Gradle (Kotlin): implementation("ai.djl.huggingface:tokenizers:***") ``` # 含有的 Java package(包): ``` ai.djl.engine.rust ai.djl.engine.rust.zoo ai.djl.huggingface.tokenizers ai.djl.huggingface.tokenizers.jni ai.djl.huggingface.translator ai.djl.huggingface.zoo ``` # 含有的 Java class(类): ``` ai.djl.engine.rust.RsEngine ai.djl.engine.rust.RsEngineProvider ai.djl.engine.rust.RsModel ai.djl.engine.rust.RsNDArray ai.djl.engine.rust.RsNDArrayEx ai.djl.engine.rust.RsNDArrayIndexer ai.djl.engine.rust.RsNDManager ai.djl.engine.rust.RsSymbolBlock ai.djl.engine.rust.RustLibrary ai.djl.engine.rust.zoo.RsModelZoo ai.djl.engine.rust.zoo.RsZooProvider ai.djl.huggingface.tokenizers.Encoding ai.djl.huggingface.tokenizers.HuggingFaceTokenizer ai.djl.huggingface.tokenizers.HuggingFaceTokenizer.Builder ai.djl.hu

    能源领域:基于MATLAB的阶梯式碳交易与供需灵活双响应综合能源系统优化调度

    内容概要:本文详细介绍了考虑阶梯式碳交易与供需灵活双响应的综合能源系统优化调度方法。在供给侧,引入了有机朗肯循环(ORC)实现热电联产机组的灵活响应;在需求侧,提出电、热、气负荷之间的可替代性,以提高能源利用效率。构建了以最小化碳排放成本、购能成本、弃风成本和需求响应成本为目标的优化调度模型,并采用MATLAB和CPLEX进行了模型构建和求解。文中提供了具体的代码示例,展示了如何处理热电耦合、负荷替代和阶梯式碳交易等问题。 适合人群:从事能源系统优化、电力系统调度、碳交易等相关领域的研究人员和技术人员。 使用场景及目标:适用于需要优化能源系统调度、降低成本并减少碳排放的实际应用场景。目标是帮助读者理解和掌握如何通过先进的技术和算法实现更加灵活和高效的能源调度。 其他说明:文章提供了完整的代码实现和服务支持,包括12种典型场景的数据集和预设模型,方便读者快速上手实践。

Global site tag (gtag.js) - Google Analytics