2023-03-24 15:00来源:m.sf1369.com作者:宇宇
我用的是postgresql,发现同样的逻辑,存储过程的代码是c#的三分之一。因为存储过程语言是为描述数据创建的,对于变量和数据的混合处理有天然优势。再加上一些注释,代码可读性比c#更高。而且由于服务器和数据库是一次交互,执行更快,用户体验好,服务器并发好。postgresql存储过程支持断点调试的。当然我不建议几千行的存储过程。存储过程的目的是为了执行速度更快,代码更简洁。我也不认为简单的增删改查也用存储过程。这些应该交给orm。存储过程应该用同时满足以下几个条件时:1.用户高频使用这个功能 2.这个功能需要多次访问数据库
存储过程的另一个好处是在编译时就可以检查sql语句的错误不用等执行。缺点是,当数据库修改后,你如果不重新编译存储过程是无法知道程序中哪些地方需要修改字段名。但是相比她带来的好处,这一点可以忍受。另外orm也只是可以检测字段,但是存储过程连语法都检测了。
现代互联网应用的基石是MySQL,而早期mysql没有存储过程,而且数据往往要分多个库,搞存储过程要一个个库去更新,万一漏了一个就会出问题。互联网应用的逻辑相对没有erp复杂,所以都不用存储过程。但是现在是2019年了,mysql数据库也支持分区表了,一个库就能搞定很大数据量。存储过程也支持了,适当使用存储过程并无不妥。尤其是postgresql数据库连断点调试都具备了,语法又那么优雅。
所以我支持用存储过程,但不能滥用,要好钢用刀刃上
简单来说有时候这两个名词有时可以互换使用、但是其概念还是不同的。 实例 instance =进程 + 进程所使用的内存(SGA) 数据库 database=物理操作系统文件或磁盘(disk)的集合(redo文件+control文件+data文件+临时文件) 数据库实例也称作服务器, 是用来访问数据库文件集的存储结构及后台进程的集合.
1、一个数据库可以被多个实例访问(称为真正的应用群集选项).
2、一个实例在其生存期内只能装载(alter database mount)和打开(alter database open)一个数据库
3、Oracle的实例在启动以后,只能load一次数据库,如果想把数据库与Instance断开,然后再重新挂在一个数据库Instance,那么就需要你首先把数据库Instance进程结束,然后重新建立这个instance的一个进程,再load另外一个数据库。否则肯定要抛除ORA-16169错误,说数据库已经被打开。因为一个数据库Instance在其生存期中最多只能load和打开一个instance。.
4、另外实例可以在没有数据文件的情况下单独启动 startup nomount , 通常没什么意义
1.首先,打开数据表文件。
2.选择数据中的“导入数据”按钮,弹出小窗口。
3.选择“ODBC”按钮,弹出“数据导向”按钮,选择Excel,点击“确定”按钮。
4.选中需要插入的数据文件,点击“确定”按钮。
5.点击“下一步”,点击“完成”,就可以在WPS中插入数据库了。
注意事项:要先选中要插入数据库,数据表的类型,在进行插入
如果这里的sql指Microsoft SQL Server,那两者差异就大了。
1.sql是一个关系数据库管理工具,为关系型数据和结构化数据提供了更安全可靠的存储功能,它的管理对象是各种复杂的数据。而excel,虽然也对数据进行管理,但它更偏重的是对表格的管理,让数据的存储和展现呈为一体。
2.sql的数据规模远超excel。sql理论上只要磁盘空间足够,保存数据不受限。excel的工作表最大1048576行,16384列;单个sheet可以保存行(1048576)*列(16384)=17179869184个数据。
3.sql的数据类型更加丰富,对数据的各种处理更加专业。
4.两者对用户的要求不同。sql要sql的求更专业的软件相关人员来操作,excel入手的门槛则比较低,只要会认字打字都可以使用。
5.两者其实可以互通取长补短。我们公司有个前辈,就特别擅长通过excel从sql数据库直接取数进行报表展现,效率超高。
EXCEL本身就是一个文件型数据库,类似于ACCESS。通过ODBC等方式可以按数据库的方式访问。可以应用SQL进行访问,包括SELECT,CREATETABLE等,功能很强。表方面的操作都没问题。不支持像存储过程等的一些操作。用其当数据这种应用是可行的,如果不是特殊的要求,还是使用像ACCESS的数据库效率更高一些。如果更高级的应用,可以用有像MSSQL这样的系统。