起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7361|回复: 3

[处理中3] 如何优化sa_task表?

[复制链接]
发表于 2021-3-22 13:26:30 | 显示全部楼层 |阅读模式
sa_task表里才500万条数据,就访问很慢;系统里有很多类似下面的语句,怎么样能优化一下表或者重写sql语句吗?
  1. SELECT SA_Task.sID                          AS SA_Task,
  2.        SA_Task.SAIACTIVE                    AS sAIActive,
  3.        SA_Task.SAIID                        AS sAIID,
  4.        SA_Task.SAISTATUSID                  AS sAIStatusID,
  5.        SA_Task.SAISTATUSNAME                AS sAIStatusName,
  6.        SA_Task.SACTIVE                      AS sActive,
  7.        SA_Task.SACTIVITY                    AS sActivity,
  8.        SA_Task.SACTIVITYINTEMPLATE          AS sActivityInTemplate,
  9.        SA_Task.SACTIVITYNAME                AS sActivityName,
  10.        SA_Task.SACTIVITYNAMES               AS sActivityNames,
  11.        SA_Task.SACTUALFINISHTIME            AS sActualFinishTime,
  12.        SA_Task.SACTUALSTARTTIME             AS sActualStartTime,
  13.        SA_Task.SCURL                        AS sCURL,
  14.        SA_Task.SCATALOGID                   AS sCatalogID,
  15.        SA_Task.SCODE                        AS sCode,
  16.        SA_Task.SCONTENT                     AS sContent,
  17.        SA_Task.SCREATETIME                  AS sCreateTime,
  18.        SA_Task.SCREATORDEPTID               AS sCreatorDeptID,
  19.        SA_Task.SCREATORDEPTNAME             AS sCreatorDeptName,
  20.        SA_Task.SCREATORFID                  AS sCreatorFID,
  21.        SA_Task.SCREATORFNAME                AS sCreatorFName,
  22.        SA_Task.SCREATOROGNID                AS sCreatorOgnID,
  23.        SA_Task.SCREATOROGNNAME              AS sCreatorOgnName,
  24.        SA_Task.SCREATORPERSONID             AS sCreatorPersonID,
  25.        SA_Task.SCREATORPERSONNAME           AS sCreatorPersonName,
  26.        SA_Task.SCREATORPOSID                AS sCreatorPosID,
  27.        SA_Task.SCREATORPOSNAME              AS sCreatorPosName,
  28.        SA_Task.SCUSTOMERID                  AS sCustomerID,
  29.        SA_Task.SCUSTOMERNAME                AS sCustomerName,
  30.        SA_Task.SDATA1                       AS sData1,
  31.        SA_Task.SDATA2                       AS sData2,
  32.        SA_Task.SDATA3                       AS sData3,
  33.        SA_Task.SDATA4                       AS sData4,
  34.        SA_Task.SDISTRIBUTETIME              AS sDistributeTime,
  35.        SA_Task.SEBFIELD51                   AS sEBField51,
  36.        SA_Task.SEBFIELD52                   AS sEBField52,
  37.        SA_Task.SEBFIELD53                   AS sEBField53,
  38.        SA_Task.SEBFIELD54                   AS sEBField54,
  39.        SA_Task.SEDFIELD21                   AS sEDField21,
  40.        SA_Task.SEDFIELD22                   AS sEDField22,
  41.        SA_Task.SEDFIELD23                   AS sEDField23,
  42.        SA_Task.SEDFIELD24                   AS sEDField24,
  43.        SA_Task.SEIFIELD41                   AS sEIField41,
  44.        SA_Task.SEIFIELD42                   AS sEIField42,
  45.        SA_Task.SEIFIELD43                   AS sEIField43,
  46.        SA_Task.SEIFIELD44                   AS sEIField44,
  47.        SA_Task.SENFIELD11                   AS sENField11,
  48.        SA_Task.SENFIELD12                   AS sENField12,
  49.        SA_Task.SENFIELD13                   AS sENField13,
  50.        SA_Task.SENFIELD14                   AS sENField14,
  51.        SA_Task.SESFIELD01                   AS sESField01,
  52.        SA_Task.SESFIELD02                   AS sESField02,
  53.        SA_Task.SESFIELD03                   AS sESField03,
  54.        SA_Task.SESFIELD04                   AS sESField04,
  55.        SA_Task.SESFIELD05                   AS sESField05,
  56.        SA_Task.SESFIELD06                   AS sESField06,
  57.        SA_Task.SESFIELD07                   AS sESField07,
  58.        SA_Task.SESFIELD08                   AS sESField08,
  59.        SA_Task.SETFIELD31                   AS sETField31,
  60.        SA_Task.SETFIELD32                   AS sETField32,
  61.        SA_Task.SETFIELD33                   AS sETField33,
  62.        SA_Task.SETFIELD34                   AS sETField34,
  63.        SA_Task.SEURL                        AS sEURL,
  64.        SA_Task.SEMERGENCYID                 AS sEmergencyID,
  65.        SA_Task.SEMERGENCYNAME               AS sEmergencyName,
  66.        SA_Task.SEXECUTEMODE                 AS sExecuteMode,
  67.        SA_Task.SEXECUTEMODE2                AS sExecuteMode2,
  68.        SA_Task.SEXECUTETIME                 AS sExecuteTime,
  69.        SA_Task.SEXECUTORDEPTID              AS sExecutorDeptID,
  70.        SA_Task.SEXECUTORDEPTNAME            AS sExecutorDeptName,
  71.        SA_Task.SEXECUTORFID                 AS sExecutorFID,
  72.        SA_Task.SEXECUTORFNAME               AS sExecutorFName,
  73.        SA_Task.SEXECUTORNAMES               AS sExecutorNames,
  74.        SA_Task.SEXECUTOROGNID               AS sExecutorOgnID,
  75.        SA_Task.SEXECUTOROGNNAME             AS sExecutorOgnName,
  76.        SA_Task.SEXECUTORPERSONID            AS sExecutorPersonID,
  77.        SA_Task.SEXECUTORPERSONNAME          AS sExecutorPersonName,
  78.        SA_Task.SEXECUTORPOSID               AS sExecutorPosID,
  79.        SA_Task.SEXECUTORPOSNAME             AS sExecutorPosName,
  80.        SA_Task.SEXPECTFINISHTIME            AS sExpectFinishTime,
  81.        SA_Task.SEXPECTSTARTTIME             AS sExpectStartTime,
  82.        SA_Task.SFLOWID                      AS sFlowID,
  83.        SA_Task.SFRONTID                     AS sFrontID,
  84.        SA_Task.SHINTS                       AS sHints,
  85.        SA_Task.SIMPORTANCEID                AS sImportanceID,
  86.        SA_Task.SIMPORTANCENAME              AS sImportanceName,
  87.        SA_Task.SKINDID                      AS sKindID,
  88.        SA_Task.SLASTMODIFYTIME              AS sLastModifyTime,
  89.        SA_Task.SLIMITTIME                   AS sLimitTime,
  90.        SA_Task.SLOCK                        AS sLock,
  91.        SA_Task.SNAME                        AS sName,
  92.        SA_Task.sParentID                    AS sParent,
  93.        SA_Task.SPLANID                      AS sPlanID,
  94.        SA_Task.SPLANNAME                    AS sPlanName,
  95.        SA_Task.SPREEMPTMODE                 AS sPreemptMode,
  96.        SA_Task.SPROCESS                     AS sProcess,
  97.        SA_Task.SPROCESSNAME                 AS sProcessName,
  98.        SA_Task.SPROCESSTEMPLATEID           AS sProcessTemplateID,
  99.        SA_Task.SPROCESSTEMPLATEID2          AS sProcessTemplateID2,
  100.        SA_Task.SPROCESSTEMPLATEITEMSEQUENCE AS sProcessTemplateItemSequence,
  101.        SA_Task.SPROJECTID                   AS sProjectID,
  102.        SA_Task.SPROJECTNAME                 AS sProjectName,
  103.        SA_Task.SREMARK                      AS sRemark,
  104.        SA_Task.SREMINDMODE                  AS sRemindMode,
  105.        SA_Task.SRESPONSIBLE                 AS sResponsible,
  106.        SA_Task.SSEQUENCE                    AS sSequence,
  107.        SA_Task.SSHORTCUT                    AS sShortcut,
  108.        SA_Task.SSOURCEID                    AS sSourceID,
  109.        SA_Task.SSTATUSID                    AS sStatusID,
  110.        SA_Task.SSTATUSNAME                  AS sStatusName,
  111.        SA_Task.SSUMMARY                     AS sSummary,
  112.        SA_Task.STEMPPERMISSIONID            AS sTempPermissionID,
  113.        SA_Task.STYPEID                      AS sTypeID,
  114.        SA_Task.STYPENAME                    AS sTypeName,
  115.        SA_Task.SVARIABLE                    AS sVariable,
  116.        SA_Task.SWARNINGTIME                 AS sWarningTime,
  117.        SA_Task.SWITHDRAW                    AS sWithdraw,
  118.        SA_Task.VERSION                      AS version
  119.   FROM SA_Task SA_Task
  120. WHERE ((SA_Task.SSTATUSID = ?) OR (SA_Task.SSTATUSID = ?))
  121.    AND (? LIKE SA_Task.SEXECUTORFID || ?)
  122.    AND (SA_Task.SEXECUTORFID LIKE ?)
  123.    AND ((SA_Task.SPROCESS <> ?) AND (SA_Task.SPROCESS <> ?) AND
  124.        (SA_Task.SPROCESS <> ?) AND (SA_Task.SPROCESS <> ?) AND
  125.        (SA_Task.SPROCESS <> ?) AND (SA_Task.SPROCESS <> ?) AND
  126.        (SA_Task.SPROCESS <> ?) AND (SA_Task.SPROCESS <> ?) AND
  127.        (SA_Task.SPROCESS <> ?))
  128. ORDER BY sCreateTime DESC
复制代码


91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36064
发表于 2021-3-22 13:56:54 | 显示全部楼层
x5具体什么版本?
数据库中执行之前sql语句也慢吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-25 09:32:19 | 显示全部楼层
jishuang 发表于 2021-3-22 13:56
x5具体什么版本?
数据库中执行之前sql语句也慢吗?

版本: 5.3.8.6257
执行简单的查询语句不慢,这些sql语句的where条件是造成速度慢的主要原因
我是想能否把表数据放在内存里,比如redis里,这样能做吗 ?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36064
发表于 2021-3-25 16:59:52 | 显示全部楼层
如果同样的语句打数据库中执行也慢,那就是数据库本身就慢,确认索引都起作用了,平台默认拼接的语句针对设置的条件都提供了对应索引的设置

把表数据放在内存里,比如redis里平台没有测试过,需要自己测试看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-22 09:33 , Processed in 0.057341 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表