导航

随笔分类 -  SQL

摘要:SQL Server 手工 锁表、查询被锁表、解锁相关语句 --锁表(其它事务不能读、更新、删除) BEGIN TRAN SELECT * FROM <表名> WITH(TABLOCKX); WAITFOR delay '00:00:20' COMMIT TRAN --锁表(其它事务只能读,不能更新 阅读全文

posted @ 2021-12-07 11:08 wissly 阅读(546) 评论(0) 推荐(0)

摘要:SQLServer数据库通常都不建议进行SHRINKFILE操作,因为SHRINKFILE不当会造成一定的性能问题。 但是当进行了某些操作(例如某个超大的日志类型表转成分区表切换了数据文件),数据库某个文件组中的剩余空间占了整个磁盘的很大一部分,而且磁盘空间已经吃紧的情况下,你也许会考虑收缩一下某个 阅读全文

posted @ 2021-11-14 10:47 wissly 阅读(276) 评论(0) 推荐(0)

摘要:在SQLServer输入数据时,碰到有主键ID需要维护时,可使用IDENT_CURRENT和CHECKIDENT命令来维护。 一般我们的用法如下: 1) 查看且如有必要更正当前标识值: DBCC CHECKIDENT('table_name') 2) 查看当前标识值,即使有错也不视图更正: DBCC 阅读全文

posted @ 2020-08-27 22:28 wissly 阅读(920) 评论(0) 推荐(0)

摘要:最近发现原来执行很快的存储过程,突然慢了下来,而很多存储过程每天就运行一次,所以打算把存储过程重新编译,另外,考虑到数据在不断变化,所以也要更新表的统计信息,这样能生成比较好的执行计划。 下面是具体的方法: 1、把存储过程标记为需重新编译,存储过程将在下次运行时重新编译 DECLARE @sql V 阅读全文

posted @ 2020-06-04 11:31 wissly 阅读(749) 评论(0) 推荐(0)

摘要:这两天在项目中用大强度大频率的方法测试时遇到sqlite报database is locked的问题,分析下来原因是sqlite对数据库做修改操作时会做(文件)锁使得其它进程同一时间使用时会报该错误(也就是SQLITE_BUSY),但如果仅是多进程或多线程查询sqlite是支持的。(也有可能是做sq 阅读全文

posted @ 2020-05-31 14:19 wissly 阅读(13712) 评论(0) 推荐(0)

摘要:数据库存储本身是无序的,建立了聚集索引,会按照聚集索引物理顺序存入硬盘。既键值的逻辑顺序决定了表中相应行的物理顺序 多数情况下,数据库读取频率远高于写入频率,索引的存在 为了读取速度牺牲写入速度 页 为最小单位 8kb 区 物理连续的页(8页)的集合 内部碎片 数据库页内部产生的碎片,外部反之 碎片 阅读全文

posted @ 2019-01-12 19:30 wissly 阅读(2419) 评论(0) 推荐(1)

摘要:查看索引使用情况 阅读全文

posted @ 2019-01-12 16:53 wissly 阅读(168) 评论(0) 推荐(0)

摘要:参考文献: http://technet.microsoft.com/en-us/library/ms188388.aspx 使用alter index来rebuild和reorganize索引来清除碎片,rebuild能够完全清除碎片,但是reorganize却不能。 结论 reorganize 阅读全文

posted @ 2019-01-06 10:51 wissly 阅读(3638) 评论(0) 推荐(0)

摘要:获取今天的00:00:00 SELECT CONVERT(DATETIME,CONVERT(VARCHAR(10),GETDATE(),120)) 获取今天的23:59:59 1、SELECT DATEADD(SS,-1,DATEADD(DD,1,CONVERT(DATETIME,CONVERT(V 阅读全文

posted @ 2018-12-14 21:20 wissly 阅读(3645) 评论(0) 推荐(1)