社区
应用实例
帖子详情
数据库访问层全用存储过程好不好?
crystalgirl_200
2008-06-13 03:37:54
今天领导让我看个数据库,看看哪里有问题,好不好
结果我一看,天啊,数据库里没有一个视图,却有上千个存储过程,我估计数据库访问层都封在存储过程里了
其中绝大部分都是一句sql,这样做好吗?完全把sql封在数据库里,一个库里有上千个存储过程,这样是不是反而慢了
asp.net的网站,标准的三层架构--表现层,逻辑层,数据访问层,有大概100多个表,这个情况
大家帮我分析下这种架构好吗
...全文
349
29
打赏
收藏
数据库访问层全用存储过程好不好?
今天领导让我看个数据库,看看哪里有问题,好不好 结果我一看,天啊,数据库里没有一个视图,却有上千个存储过程,我估计数据库访问层都封在存储过程里了 其中绝大部分都是一句sql,这样做好吗?完全把sql封在数据库里,一个库里有上千个存储过程,这样是不是反而慢了 asp.net的网站,标准的三层架构--表现层,逻辑层,数据访问层,有大概100多个表,这个情况 大家帮我分析下这种架构好吗
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
29 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
coldfusion2
2010-04-12
打赏
举报
回复
很正常
1存储过程的好处多不胜举,使用存储过程本身肯定是无可厚非的。
2关于一条select也一个存储过程,个人觉得很正常,存储过程的意义本身就不是为了简化sql,而是将数据层与逻辑层彻底分离。
3关于是否方便管理,这就看存储过程写的是否规范,命名是否有规律,相关开发文档是否齐全了,如果书写规范不好,即使写在代码里,同样也不方便管理。
utpcb
2008-06-17
打赏
举报
回复
今天领导让我看个数据库,看看哪里有问题,好不好
结果我一看,天啊,数据库里没有一个视图,却有上千个存储过程,我估计数据库访问层都封在存储过程里了
-- 如果不考虑数据库移植等问题,和ORM等设计的话,存储过程还是值得推荐的,很多国外的大系统都会使用相当数量的存储过程来替代业务逻辑层的复杂计算,
类似的Oracle里面很多包也是一个原理,通常存储过程可以直接调用和数据库相关的一些系统存储过程来实现一些业务上的加密或者逻辑控制等等,效率也会
有很大的提高.
其中绝大部分都是一句sql,这样做好吗?
-- 这个就要看需要,如果都是一些简单的SQL,写在存储过程里面是预编译,比你写成嵌入式SQL要稍微好一些,而且维护起来,如果只是数据表结构的改动,只需要维护相应的sp即可,维护工作相对较小,
完全把sql封在数据库里,一个库里有上千个存储过程,这样是不是反而慢了
-- 存储过程的多少不会影响数据库的性能的.初次建库除外,初次建库是存储过程的预编译会占用一定的时间.
asp.net的网站,标准的三层架构--表现层,逻辑层,数据访问层,有大概100多个表,这个情况
大家帮我分析下这种架构好吗
-- 还凑合吧,
PS:
如果一个库里面没有主键或者很少的索引外键之类的,
对数据库的增删改查有影响,
能够建的,尽量建好.
苦行僧说的很好就这些!
--在这个库里只有两个db_owner的用户,这样做不对吧,是不是应该把权限单独给出来??
这个要看你的应用程序使用者的对象了
wangjingxin1981
2008-06-17
打赏
举报
回复
个人认为影响不大
crystalgirl_200
2008-06-16
打赏
举报
回复
在这个库里只有两个db_owner的用户,这样做不对吧,是不是应该把权限单独给出来??
Lacsky
2008-06-14
打赏
举报
回复
可是使用存储过程和使用ORM技术如:NHibernate哪一个更好呢?怎么选择呢?
Andy-W
2008-06-14
打赏
举报
回复
进来关注,学习
zero8500
2008-06-14
打赏
举报
回复
关注 学习
lff642
2008-06-14
打赏
举报
回复
学习.
hery2002
2008-06-14
打赏
举报
回复
今天领导让我看个数据库,看看哪里有问题,好不好
结果我一看,天啊,数据库里没有一个视图,却有上千个存储过程,我估计数据库访问层都封在存储过程里了
-- 如果不考虑数据库移植等问题,和ORM等设计的话,存储过程还是值得推荐的,很多国外的大系统都会使用相当数量的存储过程来替代业务逻辑层的复杂计算,
类似的Oracle里面很多包也是一个原理,通常存储过程可以直接调用和数据库相关的一些系统存储过程来实现一些业务上的加密或者逻辑控制等等,效率也会
有很大的提高.
其中绝大部分都是一句sql,这样做好吗?
-- 这个就要看需要,如果都是一些简单的SQL,写在存储过程里面是预编译,比你写成嵌入式SQL要稍微好一些,而且维护起来,如果只是数据表结构的改动,只需要维护相应的sp即可,维护工作相对较小,
完全把sql封在数据库里,一个库里有上千个存储过程,这样是不是反而慢了
-- 存储过程的多少不会影响数据库的性能的.初次建库除外,初次建库是存储过程的预编译会占用一定的时间.
asp.net的网站,标准的三层架构--表现层,逻辑层,数据访问层,有大概100多个表,这个情况
大家帮我分析下这种架构好吗
-- 还凑合吧,
PS:
如果一个库里面没有主键或者很少的索引外键之类的,
对数据库的增删改查有影响,
能够建的,尽量建好.
ITMiner
2008-06-14
打赏
举报
回复
封装存储过程主要还是更安全
duanzhi1984
2008-06-13
打赏
举报
回复
那不是很慢吗?
看来你要优化下你的数据库了
crystalgirl_200
2008-06-13
打赏
举报
回复
这个库越来越奇怪,索引少得可怜,一个已经有上百万条数据的表没有索引
晓风残月0110
2008-06-13
打赏
举报
回复
帮你up
晓风残月0110
2008-06-13
打赏
举报
回复
帮你up
晓风残月0110
2008-06-13
打赏
举报
回复
首选支持都是proc
都使用proc可能会慢些(程序速度也不是在使用几个proc上提升的),
但是在后期维护上有绝对的优势(这很重要)
--其中绝大部分都是一句sql
尽量写通用的proc,便于开发,并形成规范
-晴天
2008-06-13
打赏
举报
回复
[Quote=引用 10 楼 changweishao 的回复:]
1000多个存储过程,其中绝大部分都是一句sql,这样有些不太好吧!
1,维护起来是个问题;
2,全部的操作都放在服务器端操作,对服务器的压力蛮大的。
[/Quote]
从客户端向服务器请求数据,不还是服务器端的事情?!
nzperfect
2008-06-13
打赏
举报
回复
[Quote=引用 9 楼 lff642 的回复:]
存储过程,触发器.我一般都使用存储过程来代替触发器的功能,所以我建议使用存储过程.
外键我一般都不用,一般都是程序上控制那些数据用户一定要输入.那个不能为空....
[/Quote]
agree。
nzperfect
2008-06-13
打赏
举报
回复
[Quote=引用 3 楼 wgzaaa 的回复:]
视图我是不用,都用存储过程我看也是有病,管理就是麻烦事,不打开都不知道啥意思,数据库文件也会增大,虽然不知道影响有多大,至少感觉是在脱裤子放屁。
[/Quote]
无语。。。
nzperfect
2008-06-13
打赏
举报
回复
正常,我们的系统没有视图,全部是存储过程,上W。
你要是orm思想开发,肯定不行了。
各有好处吧
开发重要的是规范,只要规范,就可以。
changweishao
2008-06-13
打赏
举报
回复
1000多个存储过程,其中绝大部分都是一句sql,这样有些不太好吧!
1,维护起来是个问题;
2,全部的操作都放在服务器端操作,对服务器的压力蛮大的。
加载更多回复(9)
单实例11203
数据库
迁移升级到新版19c的rac
数据库
所有需求全部来自生产实际,源自生产,贴近实战,提高技能。 生产案例生产库A是一台2012年的
数据库
服务器,存储是戴尔sc8000数据量有20T。
数据库
版本是11.2.0.3,该
数据库
是单实例
数据库
。使用操作系统目录存储,没有使用ASM存储。需要进行
数据库
服务器和存储迁移。迁移到新服务器和新存储。迁移到新的rac环境,使用本地方式进行升级。 目标:我们需要迁移
数据库
A到新服务器,新存储。 源库A
数据库
版本11.2.0.3
数据库
类型单实例数据存储使用操作系统目录存储,非ASM存储容量20TosRhel6 目标库B
数据库
版本19.19
数据库
类型Rac数据存储ASM容量21TOsRhel7 难点。1-
数据库
服务器需要进行替换2-存储需要进行替换3-容量大,存储没有多余空间,只能才有原地升级方式4-版本跨度大,需要从11203->11204->1919单实例->1919-pdb-rac. 具体步骤1-源服务器
数据库
命令行创建11203
数据库
软件2-源服务器
数据库
命令行创建11203
数据库
实例3-在目标服务器克隆源库11.2.0.3数据软件。并且在目标服务器搭建源库的dg库。4-开始真正的割接,割接的时候没有业务的。激活11203dg为主库。5-升级11203到112046-升级11204到19.197-配置19.19单实例
数据库
为rac
数据库
中的某个pdb。Over. 针对以前学员提出文档不全的意见,其实文档都是有的,都已经上传到百度网盘。这次实战课程整理文档如下:0-创建源库11203单实例1-通过克隆方式在目标服务器rac上面创建11203
数据库
软件2-在目标库rac
数据库
上面创建11203的单实例的dg3-目标库rac安装11204单实例软件和升级11203到112044-11204升级到19c
数据库
分布式
数据库
视角下的
存储过程
存储过程
移植差。高度依赖
数据库
环境,而
数据库
环境不像操作系统或虚拟机那样遵循统一的标准。因为同样的原因,
存储过程
调试也很复杂,也没有跟上敏捷开发的步伐,与今天工程化的要求不匹配。正是因为这两个工程化方面原因,不用或少用
存储过程
分布式
数据库
角度,多数NewSQL还不支持
存储过程
,OceanBase作为唯一的例外,已经支持Oracle
存储过程
,但仍然没有达到生产级。F1的论文提出了独立UDF Server的思路,是分布式架构下
存储过程
的一种实现方案,但能不能适合普通的企业网络环境,尚待观察。
存储过程
系列之-为什么要使用
存储过程
,以及优缺点
一.为什么要使用
存储过程
存储过程
是指在
数据库
系统中,一组为了完成特定功能的SQL语句集,存储在
数据库
中,经过第一次编译后以后再调用任意次都不需要重新编译了。说白了就是一堆SQL语句的合并,中间加了点逻辑控制,俗称为
数据库
中的函数。在一些金融等大型企业中,基本都是由内部人员编写好
存储过程
,然后由外部程序员调用
存储过程
,因为内部数据逻辑处理方式涉及商业机密等等。 也就是说我们现在有两种方式来处理
数据库
中的数据,一是通过JDBC从
数据库
中取出数据然后通过业务
层
编写处理数据的逻辑代码;二是在
数据库
中定义数据的存储
数据库
存储过程
缺点总结
数据库
存储过程
缺点总结,及各位讨论经典语录 1、
数据库
移植不方便: 2、大量采用
存储过程
进行业务逻辑的开发致命的缺点是很多
存储过程
不支持面向对象的设计,无法采用面向对象的方式将业务逻辑进行封装,从而无法形成通用的可支持复用的业务逻辑框架。 3、 代码可读性差,相当难维护, 4、不支持群集 金融和电信行业的确在
数据库
服务器的硬件投资少不会吝惜,但是
数据库
服务器是单点的,极难扩展,即
mysql
存储过程
的利弊_【mysql
存储过程
】应用
存储过程
的优点与缺点
总结下使用
存储过程
的优缺点一、
存储过程
优点
存储过程
是一组预先创建并用指定的名称存储在
数据库
服务器上的 SQL 语句,将使用比较频繁或者比较复杂的操作,预先用 SQL 语句写好并存储起来,以后当需要
数据库
提供相同的服务时,只需再次执行该
存储过程
。1.具有更好的性能
存储过程
是预编译的,只在创建时进行编译,以后每次执行
存储过程
都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,因此使用
存储过程
可...
应用实例
27,579
社区成员
68,558
社区内容
发帖
与我相关
我的任务
应用实例
MS-SQL Server 应用实例
复制链接
扫一扫
分享
社区描述
MS-SQL Server 应用实例
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章