C#操作sql时注意点

①创建必要的索引

②使用预编译查询

③使用参数化sql会执行预编译,第一次执行的时候DBMS会为这个SQL语句进行查询优化并执行预编译

④调整where子句中的连接顺序

⑤DBMS一般次用自上而下的顺寻解析where子句,根据这个原理,表连接最好写在其它where条件之前,这样可以过滤掉最大数量记录

⑥select语句中避免使用*

⑦尽量将多条sql语句压缩成一条sql中

⑧用where子句替换having子句

⑨避免使用having子句因为它在聚合后过滤数据,过滤应放在聚合前

⑩使用表的别名

表别名可以减少解析时间

11、用Exists替代IN

in子句将执行一个子查询内部的排序和合并

12、用表连接替代EXISTS

13、避免在索引列上使用计算,会造成全表扫描

14、避免隐式类型转换造成的全表扫描

15、防止检索范围过宽

like、is not null可能会造成优化器匹配的记录太多

时间: 2024-10-26 10:04:41

C#操作sql时注意点的相关文章

[转]C#操作SQL Server数据库

转自:C#操作SQL Server数据库 1.概述 ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据库: 第二,建立SqlCommand对象,负责SQL语句的执行和存储过程的调用: 第三,对SQL或存储过程执行后返回的“结果”进行操作. 对返回“结果”的操作可以分为两类: 一是用SqlDataReader直接一行一行的读取数据集: 二是DataSet联合SqlDataAdapter来操作数据库. 两者比较: SqlDataRead

编写SQL时PHP开发人员所犯的5个常见错误

本文和大家分享的主要是编写SQL时PHP开发人员常犯的一些错误,一起来看看吧,希望对大家学习php有所帮助. 杜绝使用MySQL API的旧版本 使用PHP开发时有好几种方法可以连接MySQL数据库.最常见的是MySQL API.MySQLi API和PDO API(PHP数据对象).与MySQL API旧版本相比,后面两种方法支持更多的功能,并且更加安全.如果你使用的是旧的"mysql_"函数,那么你应该马上放下手上的工作,然后开始学习新的PDO API.这些旧的 mysql函数被弃

C#操作SQL Server数据库

C#操作SQL Server数据库 1.概述 2.连接字符串的写法 3.SqlConnection对象 4.SqlCommand对象 5.SqlDataReader对象 6.DataSet对象 7.释放资源 1.概述 ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据库: 第二,建立SqlCommand对象,负责SQL语句的执行和存储过程的调用: 第三,对SQL或存储过程执行后返回的"结果"进行操作. 对返回"结

解答关于.NET Core操作SQL Server的一些小问题

我以前没有关注过这个问题,是因为我在项目中通常使用的bean,无论是service层的,还是dao层的,都是没有状态的bean,里面只有方法,没有成员变量.在使用这样的bean的时候,多个线程访问同一个bean不会产生线程安全问题. 数据库运维中盛传一个小段子,我误删除了数据库,改怎么办?有备份还原备份,没有备份就准备简历!听起来有趣但发生在谁身上,谁都笑不起来. 后面每搭建一个新的服务都需要在keystone中执行四种操作:1.建租户 2.建用户 3.建角色 4.做关联后面所有的服务公用一个租

Android高级-Android操作SQL数据管理,增删改查

已经学了好几天SQL了,昨天刚接触到Android操作SQL数据库,晚上老师留了一个作业,效果图如下 分别是,主界面,和修改,添加,以及删除界面 首先我们先来实现布局 MainActivity.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android&quo

C#操作word时出现的office错误

每次运行WORD都会出现一个提示窗口--"此错误通常是由宏安全性设置造成的.如果您知道宏来自您信任的来源,则可将宏安全性设置更改为允许启用宏.宏安全性设置的更改方式取决于您使用的Microsoft Office System 程序." Word2007提示错误"此错误通常是由宏安全性设置造成"的解决方法有以下几种: 方法一: Word选项--加载项--管理[com加载项],转到--把几个勾勾都取消掉--确定,即可.Win7中注意要以管理员身份进行,因为这些写入了注册

数据库SQL Server2012笔记(七)——java 程序操作sql server

1.crud(增删改查)介绍:create/retrieve/update/delete 2.JDBC介绍 1)JDBC(java database connectivity,java数据库连接) 2)是一种用于运行SQL语句的java  API,可为多种关系数据库提供统一訪问.由一组用Java语言编写的类和接口组成. 3)JDBC为工具/数据库开发者提供了一个标准的API,据此可构建更高级的工具和接口,是数据库开发者可以用纯Java API编写数据库应用程序. 4)JDBC也是闪避表明. 3.

查询sql时 改变列原来的类型

查询sql时 改变列原来的类型SELECT   create_time   FROM    ciimp_fin_invoice               本来要查询的 是 创建时间 时间类型 结果为 2017-03-29 03:29:40 SELECT create_time+'' FROM ciimp_fin_invoice 在sql列中 +'' 将其列改变为字符串类型,输出的结果为:20170329032940    + 可扩展 字符串.数字.时间 类型都可以

Spring AOP操作action时无法注入,报NullPointer异常

Spring AOP操作action时无法注入,报NullPointer异常当使用Spring AOP对action层进行操作时,会出现注入失败的问题,出现空指针异常.原因是一般struts2+spring应用中,spring的插件只负责为action的ioc部分,但并没有进行功能加强,即采用代理的机制,所有的action还是使用struts2进行管理,在使用AOP后,这些action需要由spring进行管理,如果没有由spring进行代理,将出现注入失败.解决办法:Struts2的一个特殊的