C#与sqlserver开发问题
最近不停的在考虑C#读取数据性能问题
第一种使用ado拼接sql连接数据库
第二种使用ado调用存储过程
第三种使用entityframework加linq
第四种使用反射IList<T>
1.
从开发速度上面来看的话,entityframework加linq可以很容易实现数据库的读取,将大量的时间放在处理业务逻辑上面,但是问题是,数据库有限定,貌似必须是sqlserver2005或者更高的版本,另外你是熟练linq语法,性能如果说并发性,估计要崩,不过昨天试过1w6千条数据读取,速度不比ado慢多少。
2.
开发速度排第二,dataset 反射Ilist<T> 没有做具体的实例,反射性能应该是比较差的,最近看到有人写的,打开官方编译好的dll有50%-70%的metadata数据。这个数据是就算你不用反射,他也会生成反射相关的数据。如果你使用反射,性能会更差。并不是相信大家的水准,个人觉得就大家写的那些垃圾代码,可能性能比反射更差,性能方面没有和entityframework去做比较
3. 开发速度排第三
ado拼接sql,没有什么好说,性能就这样,菜鸟写的话不如前2个
4.开发速度排第四
ado调用存储过程 ,性能最高,但是开发速度可以说非常的慢,你需要对t-sql非常了解,将业务逻辑封装proc中,反正我对这个写的并不是很多,觉得比较蛋疼,就是等于我要C#写一份,t-sql再写一份,性能最高,开发速度比较慢,要写2份,移植性差,如果你要换数据库,你懂的,各种内置函数你慢慢写吧
只是个人看法
只见树木,不见森林
C#与sqlserver开发问题的更多相关文章
- 解剖SQLSERVER 第九篇 OrcaMDF现在能通过系统DMVs显示元数据(译)
解剖SQLSERVER 第九篇 OrcaMDF现在能通过系统DMVs显示元数据(译) http://improve.dk/orcamdf-now-exposes-metadata-through-s ...
- MVC4,MVC3,VS2012+ entity framework Migration from Sqlserver to Mysql
在开发的初期个人认为因VS与Sqlserver的配合很默契,即可以方便的实现Code First,又可以使用SqlServer Manager很漂亮的进行建模与变更,也许是个人的使用习惯MS的界面做的 ...
- SQLSERVER一些公用DLL
SQLSERVER一些公用DLL的作用解释 SQLSERVER一些公用DLL的作用解释 如果你的SQLSERVER安装在C盘的话,下面的路径就是相应SQLSERVER版本的公用DLL的存放路径 S ...
- SQLServer中使用扩展事件获取Session级别的等待信息以及SQLServer 2016中Session级别等待信息的增强
本文出处:http://www.cnblogs.com/wy123/p/6835939.html 什么是等待 简单说明一下什么是等待:当应用程序对SQL Server发起一个Session请求的时候, ...
- 解剖SQLSERVER 第一篇 数据库恢复软件商的黑幕(有删减版)
解剖SQLSERVER 第一篇 数据库恢复软件商的黑幕(有删减版) 这一系列,我们一起来解剖SQLSERVER 在系列的第一篇文章里本人可能会得罪某些人,但是作为一位SQLSERVER MVP,在我 ...
- sqlserver Distributed Transaction 分布式事务
在webapi+ef+sqlserver开发项目时,利用transcope实现应用层级的事务时,偶尔会报分布式事务错误,而且很而复现,特别蛋疼.现将自己的解决方法初步整理下. 分析原因:搭建repos ...
- mssql sqlserver 使用sql脚本剔除数据中的tab、空格、回车等特殊字符的方法分享
摘要: 在sqlserver开发中,常常有同事反馈无法剔除空格,我们可以通过仔细检查发现,并不是空格字符,而是tab键,如下所示: 解决方法: 对于这些特殊字符的替换,我们需采用字符所对应的ascii ...
- 揭秘Sql2014新特性-tempdb性能提升
一直以来,在高负载,复杂的生产环境中,tempdb的压力是成为整个实例瓶颈的重要因素之一.微软的工程师们也在各个版本中不断优化它的使用.到了Sql Server2014又有了新的特性使其性能得temp ...
- 16Aspx.com源码2014年7月详细
Web电子商务网(三层)V2.0源码 2014-07-31 [VS2010] 源码介绍: Web电子商务网(三层)V2.0源码 源码描述: 一.源码特点 采用三层架构开发, ...
随机推荐
- 全文检索引擎Solr系列——整合中文分词组件mmseg4j
默认Solr提供的分词组件对中文的支持是不友好的,比如:“VIM比作是编辑器之神”这个句子在索引的的时候,选择FieldType为”text_general”作为分词依据时,分词效果是: 它把每一个词 ...
- C4 文件和目录:APUE 笔记
C4: 文件和目录 本章主要讨论stat函数及其返回信息,通过修改stat结构字段,了解文件属性. struct stat结构定义如下: struct stat { __dev_t st_dev; / ...
- 【Python】模块学习之(__call__)实现准确计算函数运行时间
背景 博主在写自动化的过程中,有遇到有的用例运行缓慢的问题,想起在上一家公司的的“自动化工厂”有一个指标:两小时内运行完所有的用例才算合格.所以想计算每一个用例的运行时间. 思路 因为使用的POM模型 ...
- JS代码大全(都是网上看到自己整理的)
事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture(); event.srcE ...
- [Vue]vee-validate的使用——自定义校验规则及校验message
1.安装vee-validate npm install vee-validate --save 2.main.js里引用vee-validate插件 import Vue from 'vue' im ...
- 关于 MongoDB 复制集
为什么要使用复制集 1.备份数据通过自带的 mongo_dump/mongo_restore 工具也可以实现备份,但是毕竟没有复制集的自动同步备份方便. 2.故障自动转移部署了复制集,当主节点挂了后, ...
- oracle11g客户端如何完全卸载(转)
1.停用Oracle服务:进入计算机管理,在服务中,找到oracle开头的所有服务,右击选择停止 2.在开始菜单中,找到Universal Installer,运行Oracle Universal I ...
- day22 CMDB 基础部分 (一)
参考博客: http://www.cnblogs.com/alex3714/articles/5420433.html
- 当vue路由变化时 改变导航条式样
这个是导航栏: <router-link to="/unusedOrder"> <div class="">路由1</div> ...
- Quartz教程一:使用quartz
原文链接 | 译文链接 | 翻译:nkcoder | 校对:方腾飞 本系列教程由quartz-2.2.x官方文档翻译.整理而来,希望给同样对quartz感兴趣的朋友一些参考和帮助,有任何不当或错误之处 ...