首页
学习
活动
专区
工具
TVP
发布

程序员的SOD蜜

专栏作者
185
文章
277063
阅读量
46
订阅数
DataReader类型化数据读取与装箱性能研究
在各种ORM框架或者SQL映射框架(例如MyBatis,SOD框架之SQL-MAP功能)中,都有将查询的结果映射为内存对象的需求,包括映射到实体类、简单类型(例如Java的POJO,.NET的POCO)的对象。在.NET中,这个过程可以通过ADO.NET的DataReader对象来读取数据,然后将读取的数据映射到内存对象。本篇文章来讨论下不同方式的数据读取方式对性能的影响。
用户1177503
2020-06-19
1.6K0
使用SQLServer同义词和SQL邮件,解决发布订阅中订阅库丢失数据的问题
最近给客户做了基于SQLServer的发布订阅的“读写分离”功能,但是某些表数据很大,经常发生某几条数据丢失的问题,导致订阅无法继续进行。但是每次发现问题重新做一次发布订阅又非常消耗时间,所以还得根据“复制监视器”的提示,找到丢失的数据,手工处理。 定位缺失数据 首先,找到出问题的同步语句,在发布服务器的“复制监视器”上事务订阅的详细信息里面,找到出错的信息 尝试的命令: if @@trancount > 0 rollback tran (事务序列号: 0x0000992600000D09007F00000
用户1177503
2018-02-27
1.5K0
SqlServer双机热备技术实践笔记
SqlServer双机热备,大体上可以通过发布订阅,日志传送,数据库镜像来实现。 1,发布--订阅 是最早最简单的方案,但需要注意发布的时候,发布进程必须对快照目录有访问权限,这个问题可以从“查看快照代理状态”看到相关提示。 在查看代理日志的时候,有可能发现代理未运行,错误提示:进程无法在“WIN-XXX”上执行“sp_replcmds”。 此时应该执行下面的命令: USE [发布的数据库] EXEC sp_changedbowner 'sa'; 这里要求在配置代理安全性的时候,日志读取器代理--安全设置-
用户1177503
2018-02-27
4.4K0
TOP语句放到表值函数外,效率异常低下的原因分析
SQLSERVER的表值函数是SQLSERVER 2005以来的新特性,由于它使用比较方便,就像一个单独的表一样,在我们的系统中大量使用。有一个获取客户数据的SQLSERVER 表值函数,如果使用管理员登录,这个函数会返回150W行记录,大概需要30秒左右,但如果将TOP语句放到表值函数外,效率异常低下,需要约3分钟: select top 20  * from GetFrame_CustomerSerch('admin','1') 下面是该存储过程的定义: ALTER FUNCTION [dbo].[Ge
用户1177503
2018-02-26
6680
SQLSERVER 2012计算上一条,下一条数据的函数
实际需求很普遍,比如求销售数据的每天与头一天的销售增长量。这里用一个汽车行驶数据来做例子: 先初始化数据: CREATE TABLE [dbo].[CarData]( [CarID] [int] NULL, [Mileage] [int] NULL, [M_year] [int] NULL, [M_Month] [int] NULL, [M_Day] [int] NULL ) ON [PRIMARY] GO INSERT [dbo].[CarData] ([CarID
用户1177503
2018-02-26
9920
SQL 行列转换简单示例
SQLSERVER 2005 以后提供了新的方式进行行列转换,下面是一个实例供参考: if object_id('tb') is not null drop table tbTest go create table tbTest(产品 varchar(10),季度 varchar(10),销售额 int) insert into tbTest values('产品1','一季度',1000) insert into tbTest values('产品1','二季度',2000) insert into
用户1177503
2018-02-26
1.4K0
TOP语句放到表值函数外,效率异常低下
在XXX系统中,有一个获取客户数据的SQLSERVER 表值函数,如果使用管理员登录,这个函数会返回150W行记录,大概需要30秒左右,但如果将TOP语句放到表值函数外,效率异常低下,需要约3分钟: select top 20  * from GetFrame_CustomerSerch('admin','1') 将GetFrame_CustomerSerch 中的SQL语句提取出来,直接加上Top查询,只需要6秒,快了N倍: declare @WorkNo varchar(38) declare @S
用户1177503
2018-02-26
5500
单数据库,多数据库,单实例,多实例不同情况下的数据访问效率测试
最近公司的项目准备优化一下系统的性能,希望在数据库方面看有没有提升的空间,目前压力测试发现数据库服务器压力还不够大,Web服务器压力也不是很大的情况下,前台页面访问却很慢,看有没有办法充分利用数据库服务器的性能,于是做了一个单数据库,多数据库,单实例,多实例不同情况下的数据访问效率测试。 测试环境: CPU:Inter Core2 Quad,Q8300,2.50GHz; 内存:4.00GB 系统:Windows 7 32位系统 数据库系统:SqlServer 2008,有两个实例,一个是默认实例,一个是命名
用户1177503
2018-02-26
1.4K0
同样的SQL语句在查询分析器执行很快,但是网站上执行超时的诡异问题
    同样的SQL语句在查询分析器执行很快,但是网站上执行超时,这个问题以前遇到过,解决办法是重新启动服务器,但过一段时间后(时间长短不一定,一般为一天后),这次又出现了,不能总是重新启动服务器了事吧,决定探个究竟。     首先,打开SQLSERVER 事务探查器,找到那个执行超时的SQL语句: exec sp_executesql N'       SELECT a.WorkNo,a.理财经理网点,a.理财经理姓名,a.序号,CAST( ROUND(a.金额/10000,2) as float) 金额
用户1177503
2018-02-26
2.2K0
SQLSERVER 占了500多M内存,原来的程序无法一次查询出50多W数据了,记录下这个问题的解决过程。
    今天需要使用“数据同步程序”将外网数据库的FundYield 数据重新同步到内网,上次成功的一次将50W数据查询了出来,但这次不行了。记得上次外网服务器剩余内存较多,SQLSERVER只占用了150M,这次占了500多M,程序无论如何也不能一次查询出50W数据来,老是查询超时,但这个数据着急要,只有想办法了。   系统使用每个表的最后修改日期(ZHXGRQ)字段作为更新的标记,检查了下数据,发现有51W多条数据都是 1999-1-1 ,除非程序将这51W条数据全部一次查询出来,否则只有另外想办法。看
用户1177503
2018-02-26
5390
没有更多了
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档