记一次.NET引用性能分析 - 客户说关联权限后查询不出数据

news/2024/10/5 15:39:11/文章来源:https://www.cnblogs.com/sunshine-wy/p/18283808

  背景:有客户说操作员关联权限后,某个页面查询不出数据,不关联权限就可以

  现象:1、用带权限的账号登进去后,查询不出数据,F12发现报错,"An error occurred while executing the command definition. See the inner exception for details."

                  2、浏览器请求记录耗时30s

                  3、勾选权限越多耗时越长,全部勾选权限时,才报上面的错

  分析:根据现象3判定查询流程基本正常,不存在基础语法错误,根据现象2判断应该是性能问题,一般程序里连数据库的超时时间就是30s。

  进一步分析:连客户库,SQL Server Profiler 中监听到的SQL,耗时55s,不带权限关联查询时,常规耗时0-1s

  小结:性能问题,分析监听的SQL,查看查询计划,发现开销比较大的地方走的是索引扫描,而不是索引查找,因此查询效率低,进一步分析发现SQL中的部分列带函数,导致索引失效,因此耗时长

     去掉该函数后,查询时间0-1s!

  不过在应用里,并不是直接编写的sql去访问数据库,而是通过LINQ转的SQL,产品里由于数据库设计等多方面原因,导致LINQ转的SQL带RTRIM函数。原本是不太好解决的,毕竟这种框架底层自发行为,人为很难干预。在网上找了一些资料后,最终通过优化LINQ编写方式解决了(改善WHERE条件的处理)。

  总结:数据库字段不要用char!LINQ不熟悉的话慎用!

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/739553.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安装Nexus3和使用Nexus3搭建私有docker镜像仓库

1、官网下载Nexus3: https://help.sonatype.com/en/download.html 2、上传到服务器后解压:tar -xf nexus-3.69.0-02-java8-unix.tar.gz3、修改运行nexus配置 【1】修运行nexus所使用的用户:vim /opt/nexus3/nexus-3.69.0-02/binexus.rc #修改默认登陆用户为admin #run_as_us…

(9)逻辑综合添加约束(时序、DRC)

一、前言dc综合是一个不断迭代的过程,如果设计的RTL代码不满足时序约束的需求,则需要重新进行修改,然后再去综合,一直迭代到时序满足需求。 二、面积约束面积约束指令:set_max_area 100面积约束的定义有三种,一种指的是两输入与非门的个数,一种是晶体管的个数,第三种是…

深度解析 Raft 分布式一致性协议

深度解析 Raft 分布式一致性协议本文参考转载至:浅谈 Raft 分布式一致性协议|图解 Raft - 白泽来了 - 博客园 (cnblogs.com) 深度解析 Raft 分布式一致性协议 - 掘金 (juejin.cn) raft-zh_cn/raft-zh_cn.md at master maemual/raft-zh_cn (github.com)本篇文章将模拟一个KV数…

nacos学习笔记之服务发现中心

一.什么是服务发现 在微服务中,服务的消费方需要调用服务的生产方,这样服务的消费方就需要知道服务的消费方的网络地址(ip+端口号)。 二、流程上图中服务实例本身并不记录服务生产方的网络地址,所有服务实例内部都会包含服务发现客户端(例如spring cloud中的ribbon)。 (…

第一次学习Java的碎碎念

2024年夏新的学习开始了; 今天做了什么? 在B站上收藏了黑马程序员学习Java的教学视频,观看了几篇入门教程,暂时学会了如何打开CMD,以及几个常见的CMD命令,例如盘符名称:、dir、cd目录、cd..、cls、exit等等,做了一个练习(利用cmd打开qq),学会了如何把应用程序的路径…

测试标题

测试摘要\[a /ge b /eq c \]

Java反射与Fastjson的危险反序列化

Preface 在前文中,我们介绍了 Java 的基础语法和特性和 fastjson 的基础用法,本文我们将深入学习fastjson的危险反序列化以及预期相关的 Java 概念。 什么是Java反射? 在前文中,我们有一行代码 Computer macBookPro = JSON.parseObject(preReceive,Computer.class); 这行代…

Win10双屏设置 之 鼠标不能从中间划过 问题解决

Win10双屏设置 之 鼠标不能从中间划过解决-百度经验 (baidu.com)

比赛获奖的武林秘籍:03 好的创意选取-获得国奖的最必要前提

本文主要介绍了大学生电子计算机类比赛和创新创业类比赛创意选取的重要性,并列举了好的创意选取和坏的创意选取的例子,同时说明了好的创意选取具有哪些特点,同时对常见的创意选取途径与来源进行了基本介绍。比赛获奖的武林秘籍:03 好的创意选取-获得国奖的最必要前提 摘要 …

阶段测试

Sre网络班阶段测试 一:用sed 命令修改/etc/fstab文件,删除文件中的空行,注释行,并保留文件备份(7分) 答案写这里:二: 用 find 命令查找出 /var/ 目录中大于1M且以db结尾的文件(7分) 答案写这里:三: 先判断当前主机是否安装了nginx包,如果没安装,则执行命令安装,…

时间序列分析专题——利用SPSS专家建模器进行建模

SPSS的专家建模器可以自动识别数据,给出最适合的模型,本章通过三个例题介绍如何使用SPSS实现时间序列分析。由于本人对时间序列分析的理解尚浅,做出模型后在论文上的呈现形式需要取查阅资料,以便更好地在论文上呈现 在此之前,我们还需要了解时间序列分析的一些基础的名词 …