底层框架优化-把原来的每行update/delete/insert修改成BatchUpdate

博客指出,用SqlDataAdapter更新含100行待删数据的表格效率低,需执行100次往返。可将更新操作放在一个SQL语句里,Sqlserver的SqlClient用分号分隔,Oracel的OracleClient用Begin...End形式,一次数据库往返完成,能优化SQL密集型操作,还提及参数编写及DataSet处理。

现在发现,如果一个数据表格内,如果有100行需要删除,如果我用SqlDataAdapter来Update,那么效率比较低下,可能会需要执行100次往返。那么,我们现在需要做的是,把所有需要更新的操作放在一个sql语句里面,用:来分隔。
Sqlserver的SqlClient支持 sql语句1;sql语句2;....
Oracel的OracleClient支持Begin sql语句1;sql语句2;...   End的形势来提交多个sql语句,再一次数据库往返中。这样再sql操作密集型的操作中可以得到一些优化。
当然了,参数的编写,我们可以用这样的@+列名+行的编号。这样我们就能保证参数是正确的。
只是执行了之后的DataSet不能被再次利用,呵呵,不想再次处理。其实也可以,只是我个人的倾向不使用。只需要AcceptChange就可以了。

const API = { /** * 首页 */ // HOME-ONLINE-QUERY: 'CSAgentManageBackend/homePage/onlineStatistics.json', // HOME-MANPOWER-QUERY: 'CSAgentManageBackend/view/getManpowerAnnularData.json', // HOME-BOARD-QUERY: 'CSAgentManageBackend/homePage/flowBoard.json', HOME_QUERY_LINE: 'home-page-api/get-lineBySiteId', /** * 组织架构管理页面 */ STRUCTRUE_MANAGEMENT_QUERY: 'work-org-info/get-list-org-info.json', STRUCTRUE_MANAGEMENT_UPDATE: 'work-org-info/update-tenant-org.json', STRUCTRUE_MANAGEMENT_ADD: 'work-org-info/add-tenant-org.json', /** * 人员信息管理页面 */ PERSON_MANAGE_UPLOAD: 'agent-use/import-excel.json', PERSON_MANAGE_DOWNLOAD: 'agent-use/tp-download.json', PERSON_MANAGE_EXPORT: 'agent-use/export-excel.json', PERSON_MANAGE_QUERY: 'agent-info/get-agent-info.json', TAGQUERY: 'work-user-info/get-special-label-list.json', AGENTIDQUERY: 'work-user-info/get-agent-item-list.json', ADDANDEDIT: 'agent-info/add-agent-info.json', /* * 班务安排页面查询接口 */ ARRANGE_ROUTINE: 'work-detail-info/batch-update.json', ROUTINE_LIANDONG: 'work-org-info/get-org-permission.json', /* *获取登录人员的名字 */ GET_OPERATOR: 'work-user-info/get-logging-user.json', /* *注销 */ SINGOUT: 'login-service/signout.json', /* *流量数据管理页面 */ FLOWDATATITLE: 'agent-data-flow/get-flow-data-title.json', FLOWDATAINFO: 'agent-data-flow/get-flow-data-info.json', LINESELECTDATA: 'agent-data-flow/get-chart-index.json', DOWNLOAD: 'agent-data-flow/export-file-xcel.json', /** * 话务预估 */ // 数据查询 TRAFFIC: 'traffic-forecast/query.json', // 话务预估模板导入 TRAFFIC_IMPORT: 'traffic-forecast/import-excel.json', // 服务评价查询 EVALUATION: 'data-import/query.json', // 服务评价导入 EVALUATION_IMPORT: 'data-import/import-evaluation.json', // 考勤数据查询 ATTENDANCE: 'data-import/query-attendance.json', // 考勤录入接口 INSERTATTENDANCE: 'data-import/insert-attendance.json', // 删除考勤数据接口 DELETEATTENDANCE: 'data-import/delete-attendance.json', /** * 全景大屏 */ // 屏二 人工外呼量 GET_AGENT_PRNORAMA_DATA: 'big-screen/get-agent-panorama-data.json', GET-HW-AGENT-PRNORAMA-DATA: 'big-screen/get-agent-hw-panorama-data.json', // 单日来电量,服务水平 GET-PANORAMA-FLOW-DATA-INFO: 'big-screen/get-panorama-flow-data-info.json', // 坐席统计 GET-PANORAMA-MAN-DATA-INFO: 'big-screen/get-panorama-manpower-data.json', // 在线状态分布 GET-PANORAMA-ONLINE-DATA: 'big-screen/get-panorama-online-data.json', // 获取top10 GET-TOP-10: 'big-screen/get-top10.json', // 实时业务变化趋势 GET-TOP10-TREND: 'big-screen/get-top10-trend.json', // 当日外呼量 GET-OUT-BOUND-SUCCESS-DETAIL: 'big-screen/get-outBound-success-detail.json', // 屏一 GET-FIRST-SCREEN-INDEX: 'big-screen/get-first-screen-index.json', // GET-HW-CALLSOFFERED: 'big-screen/get-screen-hw-callsOffer-index.json', // 屏三 GET-DAY-OPERATION-INDEX: 'big-screen/get-day-operation-index.json', GET-HW-DAY-OPERATION-INDEX: 'big-screen/get-hw-day-operation-index.json', // 获取轮播时间,顺序 GET-PANORAMA-CAROUSEL-INFO: 'big-screen/getPanorama-carousel-info.json', // --------------------------- 运营管理 / 业务数据 -------------------------- GET-TOP-20-MODEL: 'big-screen/get-top20-model.json', ADD-BUSINESS-OFFLINE: 'big-screen/add-off-line-top10.json', GET-BUSINESS-OFFLINE: 'big-screen/get-off-line-top10.json', DELETE-BUSINESS-OFFLINE: 'big-screen/delete-top20-model.json', GET-HW-FLOW-DATA-INFO: 'agent-data-flow/get-hw-flow-data-info.json', /** * 12378 大屏 */ GET_BOARD_12378_CAROUSEL: 'board12378/get-board12378-carousel.json', GET_BOARD_OPERATION_DATA: 'board12378/get-board-operation-data.json', GET_BOARD_OPERATION_DETAIL: 'board12378/get-board-operation-detail-data.json', GET_BOARD_BUSINESS_DATA: 'board12378/get-board-business-data.json', GET_BOARD_TRAFFICCUR_DATA: 'board12378/get-board-traffic-cur-data.json', GET_BOARD_TRAFFIC7DAYAVG-DATA: 'board12378/get-board-traffic-7Day-avg-data.json', GET_BOARD_BATCHOPERATION-DATA: 'board12378/get-board-batch-operation-data.json', GET_BOARD_TRAFFIC15DAYCREATECASEINDEX: 'board12378/get-board-traffic-15Day-create-case-index.json', GET_BOARD_TRAFFIC-LOST-INDEX: 'board12378/get-traffic-lost-index.json', GET_BOARD_EVALUATION-DATA: 'board12378/get-board-evaluation-data.json', GET_BOARD_TRAFFIC15DAY-TOTAL-INDEX: 'board12378/get-board-traffic-15Day-total-index.json', GET_BOARD_EVALUATION-STAR-LEVEL: 'board12378/get-board-evaluation-star-level-data.json', GET_EVALUATION-DETAIL: 'board12378/get-evaluation-detail.json', /** * 时段趋势导入 相关接口 */ // 批量上传 BATCH-UPLOAD-EXCEL: 'time-slot-config/import-from-excel.json', // 分页 QUERY-TREND-PAGE: 'time-slot-config/query-by-page.json', // 所有的地区条线信息 GET-SITE-LINES: 'traffic-data/get-lines.json', // 根据地区条线查询趋势信息 GET-TRAFFIC-BYLINE: 'traffic-data/get-traffic-by-line.json', // 全渠道时段趋势图 GET-ALLCHANNEL-TIME: 'time-slot-config/query-by-site-id-and-line-code.json', GET-TRAFFIC-PRE: 'traffic-data/get-traffic-pre-by-line.json', GET-CHECKLINE-INFO: 'employee-info/get-check-line-info.json', GET-AFFAIRS-TREE: 'new-work-affairs/list-work-affairs-tree.json', // 获取人力标签 GET-ALL-TAGNAME: 'employee-tag-config/get-all-agent-tag-configs.json', DELETE-AFFAIRS-DELETE: 'work-detail-info/delete.json', BATCH-INSERT-AFFAIRS: 'work-detail-info/batch-insert.json', // 获取班务明细 GET-AFFAIRS-DETAIL: 'new-work-affairs/get-gather-info.json', // ------------- 人力标签相关接口 GET-SITEID-BYLOGIN: 'login/get-login-user-areas.json', GET-TAGSPAGE: 'employee-tag/query-tags-by-page.json', BATCH-IMPORT-TAGS: 'employee-tag/import-employee-tags.json', BATCH-IMPORT-EXTINFO: 'employee-info/import-employee-ext-info.json', // 获取地区下的人员信息 选换班时,获取输入对换工号的接口 GET-EMPLOYEEINFO-BYSITE: 'abnormal-info/list-employee-info.json', // 地区下的线上班别 手工调班的二级 菜单获取 GET-ONLINE-CLASS: 'abnormal-info/list-online-class.json', // 异常上报 ADD-ABNORMAL-INFO: 'abnormal-info/insert.json', GET-DISTRI-BUTIONCOUNT: 'man-power/get-distribution-count.json', GET-DETAIL-DISTRI-BUTION: 'man-powerApi/get-distribution-detail.json', GET-UNSCHEDULED-AFFAIRS: 'new-work-affairs/list-un-scheduled-affairs.json', GET-ALL-CLASS: 'class-config/getAll.json', GET-AGENTTAG-CONFIGS: 'employee-tag-config/get-by-search-criteria.json', ADD-AGENTTAG-CONFIGS: 'employee-tag-config/add.json', DELETE-AGENTTAG-CONFIGS: 'employee-tag-config/delete.json', GET-CLASS-PAGE: 'class-config/get-by-search-criteria.json', ADD-CLASS-CONFIG: 'class-config/add.json', DELETE-CLASS-CONFIG: 'class-config/delete.json', // 人力盘点 分页,批量新增 GET-OPERATION-INVENTORY-PAGE: 'employee-tag-snapshot/get-page.json', UPDATE-OPERATION-INVENTORY: 'employee-tag-snapshot/update.json', // 专项和个人 标签获取 GET-PERSONTAGS-BY-TYPE: 'employee-tag-config/get-by-type.json', // 获取小组关系 GET-ORGCODE: 'org/get-org.json', //---------------- 流量地图 ------ GET-FLOW-MAPVIEW: 'traffic-map/get-over-view.json', GET-IVR-LINES: 'traffic-map/get-ivr-lines.json', GET-IVR-ENTRANCETREND: 'traffic-map/get-ivr-entrance-trend.json', // Ivr 的进线趋势 GET-IVR-CUSTOMER: 'traffic-map/get-ivr-entrance-customer-group.json', GET-OVER-FLOW: 'traffic-map/get-over-flow.json', GET-SKILL-SUPPORT: 'trafficMap/get-skill-support.json', GET-TRAFFIC-SOURCE: 'trafficMap/get-traffic-source.json', // 高价值的策略趋势 GET-STRATEGY-TREND: 'traffic-map/get-strategy-trend.json', GET-STRATEGY-RESULT: 'traffic-map/get-strategy-result.json', GET-CSR-CUSTOMER-GROUP: 'traffic-map/get-csr-customer-group.json', GET-CSR-TIMETREND: 'traffic-map/get-csr-time-trend.json' };把这个对象的key的-替换_
最新发布
10-15
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值