当从 Java 查询时,Sql Server 会忽略 varchar 列上的索引并进行表扫描

2024-02-08

问题:我有一个 SQL Server 表,其中有一个 varchar 列和数百万行,它已建立索引。从 SQL Server 查询工具中运行查询速度很快,因为它使用索引。当我从 Java JDBCPreparedStatement 运行查询时,需要花费很多分钟,调查显示 SQL Server 执行了表扫描。我该如何解决这个问题?


解答:该问题是由于 Java 将查询参数的 unicode 字符串传递给 SQLServer 造成的。 SQLServer 不会在 varchar 索引上使用它。

如果您希望列保留 varchar(或无法更改它)并有权访问 Java 代码,请将 sendStringParametersAsUnicode 连接字符串属性设置为“false”(默认为“true”)。搜索“JDBC 驱动程序的 MSDN 国际功能”以获取更多详细信息,但也适用于 CHAR、VARCHAR 或 LONGVARCHAR 列。

如果您无权访问 Java 代码但可以更改数据库,则将数据库中的 varchar 列更改为 nvarchar 可以解决问题,但代价是数据存储要求加倍。

EXAMPLE

jdbc:sqlserver://localhost:1433;databaseName=mydb;sendStringParametersAsUnicode=false
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当从 Java 查询时,Sql Server 会忽略 varchar 列上的索引并进行表扫描 的相关文章

  • 设置 SWT Shell 的默认字体

    有没有办法为整个 Shell 设置默认字体 以便任何新控件都将使用相同的字体 看来现在我必须为我创建的每个控件设置字体 这导致了太多的冗余 默认使用的字体由平台选择 请参阅中的其他信息 类字体 SWT 标准小部件工具包 http book
  • Java:高性能消息传递(单生产者/单消费者)

    我最初问这个问题here https stackoverflow com questions 3367192 java is while true loop in a thread bad whats the alternative 但我意
  • Javadoc 1.5 和 1.6 中缺少 enum.valueOf(String name)

    这可能是一个愚蠢的问题 但我正在使用该方法enum valueOf String name 那里没问题 只是当我检查 javadoc 以了解有关此方法的更多信息时 我找不到它 有javadoc用于valueOf Class
  • 线程“main”java.lang.UnsatisfiedLinkError中出现异常:java.library.path中没有opencv_java249

    我目前正在尝试在我的 32 位笔记本电脑上设置 OpenCV 但我不断收到一条令我困惑的错误消息 Exception in thread main java lang UnsatisfiedLinkError no opencv java2
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • 在 TestNG 中运行多个类

    我正在尝试自动化一个场景 其中我想登录一次应用程序 然后进行操作而无需再次重新登录 考虑一下 我有在特定类的 BeforeSuite 方法中登录应用程序的代码 public class TestNGClass1 public static
  • 哈希码是否用于加速集合中的对象查找?

    IIUC 相同类型的两个不同对象可以存储在 HashSet 中 即使两个对象在以下情况下返回相同的值 hashCode 叫做 例如根据本文 https eclipsesource com blogs 2012 09 04 the 3 thi
  • 支持通过 OAuth 进行 Facebook/Twitter 身份验证的 CAS 服务器

    我正在寻找一个支持 Facebook Twitter 通过 OAuth 进行单点登录身份验证的 CAS 服务器 我检查过 JASIG CAS 服务器 但它看起来不支持它们 我的 java web 应用程序基于 Spring Security
  • 从关卡堆栈中获取相对比例的数学

    为这个可怕的标题道歉 我花了 10 分钟试图用一句话来解释这一点 但失败了 虽然提示这个问题的应用程序是用Java Android 编写的 但我认为它非常通用并且适用于任何语言 欢迎使用伪代码 或简单的英语 回复 我不确定是否应该标记所有通
  • BlackBerry SQLite:将一个 SQLite 数据库连接到另一个

    我正在尝试使用 SQLite 将一个 SQLite 数据库附加到 BlackBerry 上的另一个数据库附加数据库 http www sqlite org lang attach html命令 Database d1 d2 Statemen
  • Java:使用 Java.util.concurrent 线程访问读取线程串行端口

    我正在尝试编写一个 Java 串行设备驱动程序并想使用 对我来说是新的 java util concurrent包裹 我有一种发送数据包然后等待 ACK 的方法 我打算有炭 接收在不同的线程中运行 如果接收线程收到 ACK 它应该使用发送数
  • 如何使用 Guava 连接字符串?

    我写了一些代码来连接字符串 String inputFile for String inputLine list inputFile inputLine trim 但我不能使用 连接 所以我决定使用 Guava 所以我需要使用Joiner
  • 使用Java开发跨平台,不同平台字体缩放不同

    我正在为我的大学制作一些软件 需要一个 GUI 在它的第一个版本中 我让它使用系统外观 因此它看起来像 Linux Mac Windows 中的本机应用程序 我发现这很麻烦 因为我必须根据操作系统使所有 JLabel 具有不同的大小 无论分
  • HTTP PUT 在 Java 中上传文件

    Edit 我想我已经弄清楚如何执行二进制数据部分 仔细检查代码 但我很确定我做对了 现在 当我尝试按照中所述完成上传时遇到新错误Vimeo API 文档 http vimeo com api docs upload streaming Ed
  • SQL返回两行之间的秒差

    这个问题与SQL Server有关 我有下表 id size batch code product code additiontime 1 91 55555 BigD Red 2017 05 15 13 00 00 2 91 55555 B
  • C# 中处理 SQL 死锁的模式?

    我正在用 C 编写一个访问 SQL Server 2005 数据库的应用程序 该应用程序是数据库密集型的 即使我尝试优化所有访问 设置适当的索引等 我预计迟早会遇到死锁 我知道为什么会发生数据库死锁 但我怀疑我能否在某个时候发布不发生死锁的
  • 无法映射 ftl 文件中的 jsonRequest 属性

    我想在 FTL 文件中映射下面的 json 文件市场和子市场字段 但是当我尝试下面的代码时 它没有映射 有人可以帮助我吗 我从 2 天开始就无法映射它 Json请求 ProcessOrderRequest prevalidationMode
  • Google Place Api:来自此 Android 客户端应用程序 com.package.name 的请求被阻止

    我在用PlaceAutocompleteFragment当我单击搜索字段 PlaceAutocompleteFragment 对话框消失时 我收到此错误 errors domain global re ason forbidden mess
  • java.io.EOFException:没有更多可用数据 - 预期结束标记 关闭开始标记

    我正在使用 xmpp 开发一个聊天应用程序 根据我们的要求 我们有三台服务器 Apache Tomcat 7 ejabbered 2 1 11 和 mysql 5 5 to run xmppbot on tomcat used below
  • Integer.parseInt 引发的 NumberFormatException

    嘿 我在学校上编码课 但老师没有很好地解释 所以我们必须在网上查找我所做的信息 但我无法找到代码中的错误 你能帮我吗 char end s do System out println Tipo de boleto char boleto c

随机推荐

  • 实体框架以及类似的地方[重复]

    这个问题在这里已经有答案了 我正在使用这个指令 db user db CBR User FirstOrDefault p gt p Codice Fiscale code 我想使用 like 运算符代替 来管理不区分大小写 怎样才能做到呢
  • 禁用 UIWebView 中特定 HTML 元素的数据检测器

    有谁知道是否可以仅针对特定的 HTML 元素禁用 UIWebView 中电话号码 电子邮件地址等的数据检测器 我希望检测器对于加载到 UIWebView 中的大部分内容都处于活动状态 但在某些区域禁用它 如果这是可能的 我假设它可以通过在加
  • 我的 AVPlayer 的内存在哪里?如何取回它?

    我正在同时播放大量视频AVPlayer 为了减少加载时间 我将相应的视图存储在NSCache 这种方法效果很好 直到达到一定数量的视频 视频就会停止播放 甚至不再出现 没有错误 日志或内存警告 特别是 我正在听UIApplicationDi
  • Fedora 19 上的 Metasploit msfconsole method_missing

    我使用以下命令在 Fedora 19 上安装了metasploit这份来自 Fedora 的指南 http fedoraproject org wiki Metasploit 完成我运行的所有步骤后微软控制台并得到以下错误 usr loca
  • nfsnobody 用户权限

    我已经在两台 CentOS 6 64 机器之间设置了 NFS 文件共享 在服务器上 共享的文件夹最初由 root 用户拥有 在客户端上 它显示为 nfsnobody 所有 当我尝试从客户端写入该文件夹时 出现权限错误 因此 我将服务器上的文
  • 将 google plus 登录添加到 ionic 应用程序

    我正在尝试将 google plus 登录添加到我的ionic app 点击此链接后出现错误 https ionicthemes com tutorials about google plus login with ionic framew
  • 推荐一个适合偶尔使用的好的实体关系图构建工具? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 免费软件是一个优点 您能否用一句话描述一下为什么它应该足够适合偶尔使用 编辑 你可能会检查这个很酷link http www refere
  • TCP握手可靠性

    我其实想知道 在 TCP 握手中 为什么客户端需要 ack 返回来完成握手 在syn和syn ack之后 双方都有足够的信息来启动数据 tcp仍然要求客户端的ack移动到已建立的状态 问题是 为什么这种三向握手是实现可靠性的必要和充分条件
  • 下划线覆盖 NSAttributedString 中的文本

    我正在尝试创建一个属性字符串 但下划线覆盖了我的文本 而不是出现在它后面 有没有办法来解决这个问题 我正在使用以下代码 let paragraphStyle NSMutableParagraphStyle paragraphStyle li
  • 将 IP 地址输入 EC2 安全组规则时应使用什么格式?

    我正在尝试配置从堡垒主机 位于公共子网中 到同一 VPC 中的私有 linux 实例 位于私有子网中 的安全 ssh 连接 当我为我的私有 Linux 实例添加安全组规则时 最初它显示的规则为 请注意 在添加堡垒主机的 IP 地址之前 水印
  • CSS居中技巧[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Jquery 选择元[property=og:image]?

    我想在 Jquery 中选择网页中的主照片 我只有 url 页面 所以我决定使用为 Facebook 共享编写的元 我想选择的内容 元属性 og 图像 内容 http blablabla jpg 我写了这个 但它不起作用 meta prop
  • 在状态数组中添加值的最佳方法是什么

    我有一个状态数组 比方说this state arr 我想向这个状态属性添加一些内容 然后更改更多属性 Option 1 onChange event this state arr push newvalue this setState s
  • 使用 jQuery 将自定义 CSS 类添加到动态创建的元素

    让我说明一下我的问题 我有一个外部 JavaScript 库 它可以根据用户输入和交互动态地为我创建某些 HTML 元素 并且我希望编写一个脚本来自动将某个类添加到这些动态创建的元素中 假设我也无法编辑我正在使用的外部 JavaScript
  • 你可以在 Swift 字符串插值中使用字符串/字符文字吗?

    是否可以在 Swift 中的字符串插值中使用字符串 字符文字 语言参考说 在内插字符串的括号内编写的表达式不能包含未转义的双引号 这对我来说有点模糊 因为它似乎故意留下转义双引号的漏洞 如果我尝试 println Output repeat
  • 我试图编写一个包含二次公式的程序,但我不明白为什么我不断收到错误[重复]

    这个问题在这里已经有答案了 import math a float input Enter value for a b float input Enter value for b c float input Enter value for
  • 创建新的 Hibernate 表

    所以我对 Hibernate 还很陌生 而且我正在开发一个大型应用程序 该应用程序已经有一个包含多个 Hibernate 表的数据库 我正在开发一项新功能 其中包括一个新功能 Entity类 我需要将这些对象存储在一个新表中 该类声明如下
  • 如何在Jenkins中使用ANSIcolor插件?

    我已经为 Jenkins 安装了 ANSI color 插件 在作业中 我已使用默认配置文件 xterm 激活了该插件 我不知道打印到控制台日志时如何对控制台日志的输出进行着色 来自批处理文件的日志 Windows 平台 有关的文档 htt
  • 作为 OpenShift 用户,我可以做什么?

    我目前正在使用虚拟服务器并想尝试一下开放式班次 http openshift redhat com 出去 但我还没有真正了解它是如何工作的 我可以获得我的 网络空间 的 root 访问权限吗 我可以设置服务器操作系统 例如 Debian 7
  • 当从 Java 查询时,Sql Server 会忽略 varchar 列上的索引并进行表扫描

    问题 我有一个 SQL Server 表 其中有一个 varchar 列和数百万行 它已建立索引 从 SQL Server 查询工具中运行查询速度很快 因为它使用索引 当我从 Java JDBCPreparedStatement 运行查询时