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

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

时间:2024-07-06 22:08:48浏览次数:16  
标签:LINQ 查询 耗时 关联 SQL NET 权限

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

  现象: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不熟悉的话慎用!

  

标签:LINQ,查询,耗时,关联,SQL,NET,权限
From: https://www.cnblogs.com/sunshine-wy/p/18283808

相关文章

  • 在 PostgreSQL 中,如何处理大规模的文本数据以提高查询性能?
    文章目录一、引言二、理解PostgreSQL中的文本数据类型三、数据建模策略四、索引选择与优化五、查询优化技巧六、示例场景与性能对比七、分区表八、数据压缩九、定期维护十、总结在PostgreSQL中处理大规模文本数据以提高查询性能一、引言在当今的数据驱动的......
  • netdot webapi发布centos stream 9 被dos攻击
    前言-刚刚发布一个demo一直被一个叼毛攻击,不停的扫描端口,弄得接口一访问就是503错误99元买了一个2核2g的服务器,1元钱买了一个服务器,有个人一直扫描我的端口安装一个 nginxdnfinstallnginx安装完成后启动nginx服务#启动systemctlstartnginx#设置开机自启动sys......
  • EtherCAT转Profinet网关配置说明第二讲:上位机软件配置
    EtherCAT协议转Profinet协议网关模块(XD-ECPNS20),不仅可以实现数据之间的通信,还可以实现不同系统之间的数据共享。EtherCAT协议转Profinet协议网关模块(XD-ECPNS20)具有高速传输的特点,因此通过EtherCAT转Profinet网关实现数据传输和控制时速度的提升。在大规模的工业自动化生产过程中,......
  • 52-3 权限维持 - IFEO注入(镜像劫持)
    IFEO注入(映像劫持)介绍IFEO(ImageFileExecutionOptions)位于Windows注册表中的路径为:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ImageFileExecutionOptionsIFEO最初设计用于为在默认系统环境下可能出现错误的程序提供特殊的调试和执行环境。通过......
  • 52-2 权限维持4 - 启动项注册表键后门
    简介        我们可以通过将后门程序添加到系统的启动文件夹或者注册表的运行键来实现权限的持久化。添加后门程序后,它将在用户登录时启动,并且具备与账户关联的权限级别。一、系统启动文件夹将程序放置在启动文件夹中会导致该程序在用户登录时自动执行。Windows系......
  • 52-1 权限维持 - 服务、计划任务后门
    一、系统服务漏洞        启动类型为“自动”的系统服务可以被利用成为后门,方法是将服务的二进制文件路径设置为后门程序。这样,当系统或服务重新启动时,后门程序将再次获取对目标主机的控制权。需要注意,这种操作需要拥有目标主机的管理员权限。        另外,还......
  • EtherCAT转Profinet网关配置说明第一讲:配置软件安装及介绍
     网关XD-ECPNS20为EtherCAT转Profinet协议网关,使EtherCAT协议和Profinet协议两种工业实时以太网网络之间双向传输IO数据。适用于具有EtherCAT协议网络与Profinet协议网络跨越网络界限进行数据交换的解决方案。本网关通过上位机来进行配置。首先安装上位机软件一、上位机......
  • 昇思25天学习打卡营第11天|ResNet50图像分类
    文章目录昇思MindSpore应用实践基于MindSpore的ResNet50图像分类1、ResNet50简介2、数据集预处理及可视化3、构建网络构建BuildingBlock构建BottleneckBlock构建ResNet50网络4、模型训练5、图像分类模型推理Reference昇思MindSpore应用实践本系列文章主......
  • Django权限系统如何使用?
    Django的权限系统是一个强大而灵活的特性,允许你控制不同用户对应用程序中资源的访问。以下是使用Django权限系统的几个基本步骤:1.定义模型权限在你的models.py文件中,你可以为每个模型定义自定义权限。这通过在模型的Meta类里设置permissions元组完成。fromdjango.dbim......
  • Kubernetes——Helm(二)
    我们已经知道了如何将信息传到模板中。但是传入的信息并不能被修改。有时我们希望以一种更有用的方式来转换所提供的数据。一、函数初体验quote函数:把.Values对象中的字符串属性用引号引起来,然后放到模板中。apiVersion:v1kind:ConfigMapmetadata:name:{{.Rele......