使用存储过程非常慢,但是直接执行SQL很快. 了解基本情况后,初步判断是参数嗅探问题 在对应的SQL语句后面使用 OPTION(OPTIMIZE FOR UNKNOWN) 参考了 http://www.cnblogs.com/kerrycode/p/9650629.html…
mysql -uroot -p show databases; use scm; show tables; show procedure status; 其他命令: SHOW VARIABLES LIKE 'event_scheduler'; 看事件是否启动[用于定时执行时候检查] SET GLOBAL event_scheduler = ON; 命令行开启事件[如果没有开启就手动命令开启] SELECT HOST,USER,Event_priv FROM mysql.user; 本机权限 [执…
我们都知道,参数化查询可以处理SQL注入,以及提高查询的效率,因为参数化查询会使MSSQL缓存查询的计划. 但是会出现一个问题:有的时候参数化查询比直接拼接sql字符串效率低好多,甚至是查询超时. 原因:原来是字符类型的不匹配造成的.如果代码没有为SqlParameter设置DbType,非字符串类型,比如tinyint,int等,系统可以自动推断出SqlDbType,但是string对应数据库的nvarchar varchar等若干类型,所以无法自动推断,默认为Nvarchar.如果数据库字段…
上篇文章简单介绍NHibernate之简单增删改查,本文将会简单介绍有关执行NHibernate的SQL.HQL及存储过程: 一:执行SQL语句实例,运用CreateSQLQuery方法 public IList<SchoolModel> GetListBySql() { string strSql = "select * from T_School where studentNum>250"; ISQLQuery sqlQuery = isession.Create…
一.exec和sp_executesql介绍 当需要根据外部输入的参数来决定要执行的SQL语句时,常常需要动态来构造SQL查询语句.比如,一个比较通用的分页存储过程,可能需要传入表名,字段,过滤条件,排序等参数,而对于搜索的话,可能要根据搜索条件判断来动态执行SQL语句. 在SQL Server中有两种方式来执行动态SQL语句,分别是exec和sp_executesql.sp_executesql相对而言具有更多的优点,它提供了输入输出接口,可以将输入输出变量直接传递到SQL语句中,而exec只…
1.Entity Framework Code First查询视图 Entity Framework Code First目前还没有特别针对View操作的方法,但对于可更新的视图,可以采用与Table一样的方式进行插入.修改.删除及查询.在实际的项目过程中,视图多只用于进行查询. Entity Framework Code First查询视图示例: 使用到的表及视图结构如下: 文件类VCity.cs: using System; using System.Collections.Generic;…
当一个存储过程是为了生成报表,并且是周期性的,则不需要人工干预,由SQL作业定时自动执行些SQL存储过程即可. 本示例,假设已需要定时执行的存储过程为:Pr_test 工具/原料 SQL Server Management Studio 已编写好的存储过程 方法/步骤   打开SQL Server Management Studio,SQL Server代理--作业--点右键--新建作业   作业的名称取为:test 并进行说明,若作业的数量太多,以方便区别; 这里写上定时执行存储过程Pr_te…
无论ORM有多么强大,总会出现一些特殊的情况,它无法满足我们的要求.在这篇文章中,我们介绍几种执行SQL的方法. 表结构 在具体内容开始之前,我们先简单说明一下要使用的表结构. public class Category { public int CategoryID { get; set; } public string CategoryName { get; set; } } 在Category定义了两个字段:CategoryID.CategoryName. public class Sam…
VS2013, MySQL5.7.18 , MySQL5.7.14 执行SQL语句: ztp_user z = new ztp_user(); object[] obj = new object[] { z }; MySqlParameter[] p = new MySqlParameter[]{ new MySqlParameter("@username","admin1") }; var result = db.Database.SqlQuery<ztp_…
这一节,我们来看看EF如何执行SQL语句与读取存储过程的数据,可能有一部分人,还不知道EF如何执行存储过程与原生SQL语句! 我们什么时候要直接使用原生的SQL语句? 返回值过于复杂 过于复杂的联合查询,可能连了好几张表 报表自定义SQL语句(自定义报表居多) 使用EF,但是写了一条性能很差的LINQ 批量操作 所以实际开发中,我往往两合一处理 EF上下文 DbContext包含了DataBase属性,里面有很多方法,但是实际我们只需要用到个方法 ExecuteSqlCommand 和 SqlQ…