Improve a select query with MINUS

MyPlanet 2003-09-03 03:13:13
In follwoing two tables cas.cass_siebel@cas_lnk and CASS_HISTORY, there are about 500,000 records in each table. The following query returns the records in cas.cass_siebel@cas_lnk, but it will not return the records with exact match in CASS_HISTORY.

This query is quite slow. I wonder if there is way to speed up this query. For example, adding some more indexes in both tables is helpful or not.

Any suggestions? Thanks.


SELECT casss.record_type,
casss.fiscal_year,
casss.sequence_number,
casss.office_number,
substr(trim(casss.file_name), 1, 40) "FILE_NAME",
substr(trim(casss.consumer_name), 1, 35) "CONSUMER_NAME",
FNC_GET_COUNTY_CODE(casss.county_code) "COUNTY_CODE", /* county_code is county_name in cas.cass_siebel */
substr(trim(casss.insured_name), 1, 40) "INSURED_NAME",
decode(length(trim(casss.company_code)), 5, trim(casss.company_code), NULL) "COMPANY_CODE",
substr(trim(casss.company_name), 1, 40) "COMPANY_NAME",
substr(trim(casss.agent_name), 1, 40) "AGENT_NAME",
substr(trim(casss.agent_ssn), 1, 9) "AGENT_SSN",
substr(trim(casss.agency_name), 1, 40) "AGENCY_NAME",
to_date(casss.date_closed, 'YYYY-MM-DD') "DATE_CLOSED",
to_date(casss.date_opened, 'YYYY-MM-DD') "DATE_OPENED",
DECODE(casss.date_closed, NULL, 'Open', 'Closed') "STATUS",
casss.origin_code,
casss.COMPLAINANT_TYPE_CODE "COMPLAINT_TYPE_CODE",
casss.general_coverage_code,
casss.detail_coverage_code,
casss.reason_code,
casss.disposition_code,
casss.service_request_employee,
substr(trim(casss.category), 1, 2) "CATEGORY",
NULL "REFERRAL_TEXT",
NULL "REASON_TEXT",
NULL "referral_code_a",
NULL "referral_code_b",
NULL "referral_num_a",
NULL "referral_num_b",
to_date(casss.date_added, 'YYYY-MM-DD') "DATE_ADDED",
casss.company_complaint_ind "COMPANY_COMPLAINT_INDICATOR"
FROM cas.cass_siebel@cas_lnk casss
WHERE casss.date_opened IS NOT NULL

MINUS

SELECT CH.* FROM CASS_HISTORY CH
...全文
112 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
MyPlanet 2003-09-03
  • 打赏
  • 举报
回复
Is there a way to speed up it.
jiezhi 2003-09-03
  • 打赏
  • 举报
回复
你的查詢當然會比較慢:

1.在字段上使用了大量的substr、trim、to_date函數
2、使用了dblink,通過網絡訪問數據
3.表里面的數據也比較多。


内容概要:本文针对光储充一体化社区中电动汽车的有序充电问题,提出并实现了一种双层优化策略,旨在协调系统经济性与用户充电体验。该策略构建主从博弈模型,上层以电网侧经济运行目标优化动态充电定价,下层以用户侧满意度最大化为目标优化个体充电行为,通过Matlab代码进行建模与仿真验证。研究综合考虑光伏发电的不确定性、储能系统的充放电特性以及电动汽车充电需求的时空分布特征,建立了完整的数学优化模型,并设计相应的求解算法,有效实现了削峰填谷、降低用户成本、提高可再生能源就地消纳率等多重目标,为新型配电系统的协同优化提供了可行方案。; 适合人群:具备一定电力系统基础知识、优化理论背景及Matlab编程能力的研究生、科研人员,以及从事新能源接入、智能电网、电动汽车调度等相关领域的工程技术人员。; 使用场景及目标:①深入理解光储充一体化系统中多主体互动机制与有序充电调度原理;②掌握双层优化模型(特别是主从博弈)的构建思路与求解方法;③学习如何利用Matlab实现复杂能源系统的仿真建模与数据分析,服务于科研论文撰写、课题研究或实际工程项目开发。; 阅读建议:此资源强调理论建模与代码实践的紧密结合,建议读者在阅读过程中对照文档中的模型推导步骤,逐行分析Matlab代码实现逻辑,动手复现仿真结果,深入理解变量设置、约束条件处理及算法迭代过程,从而提升独立解决综合能源系统优化问题的能力。

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧