摘要: 1、根据给定的时间段,返回时间段内的月(年/季度)的数组解析: 这是上周项目中遇到的一个问题,在sql中通过DatePart()函数,加上group by 分组来实现,获取给定时间段内每月(/年、季度)的相关信息, 但是这样有一个问题,如果数据库里边在符合条件的时间段内没有相关信息的话,返回的信息是不完整的, 示例:返回2012年1月1日,到2012年12月31日范围区间的数据,按月分组,正常情况下该出现12个月的信息,但是如果某个月没有信息,则可能 返回的信息少于12条,但是项目要求,应该返回完整的信息,如果没有值的话,默认为0。刚开始的时候毫无头绪,有想过用List来暂时存储信息, 然后最 阅读全文
posted @ 2013-06-13 14:49 尼姑哪里跑 阅读(863) 评论(0) 推荐(0) 编辑
摘要: 查询速度慢的原因很多,常见如下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。 9、返回了不必要的行和列 10、查询语句不好,没有优化 可以通过如下方法来优化查询 : 1、把数据、日志、索引放到不... 阅读全文
posted @ 2013-06-13 10:15 尼姑哪里跑 阅读(188) 评论(0) 推荐(0) 编辑
摘要: SQL字符串函数select语句中只能使用sql函数对字段进行操作(链接sql server),select 字段1 from 表1 where 字段1.IndexOf("云")=1;这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了。left()是sql函数。select 字段1 from 表1 where charindex('云',字段1)=1;字符串函数对二进制数据、字符串和表达式执行不同的运算。此类函数作用于CHAR、VARCHAR、 BINARY、 和VARBINARY 数据类型以及可以隐式转换为CHAR 或V 阅读全文
posted @ 2013-06-13 10:14 尼姑哪里跑 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 锁定数据库的一个表SELECT * FROM table WITH (HOLDLOCK)注意: 锁定数据库的一个表的区别SELECT * FROM table WITH (HOLDLOCK)其他事务可以读取表,但不能更新删除SELECT * FROM table WITH (TABLOCKX)其他事务不能读取表,更新和删除SELECT 语句中“加锁选项”的功能说明SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能。用户既能使用SQL Server的缺省设置也可以在select 语句中使用“加锁选项”来实现预期的效果。 本文介绍了SELECT语句中的各项“加锁选项” 阅读全文
posted @ 2013-06-13 10:13 尼姑哪里跑 阅读(360) 评论(0) 推荐(0) 编辑