SQL Server与SQL Server Express的区别
SQL Server Express 2005(以下简称 SQLExpress) 是由微软公司开发的 SQL Server 2005(以下简称 SQL2005)的缩减版,这个版本是免费的,它继承了 SQL Server 2005 的多数功能与特性,如:安全性设置、自定义函数和过程、Transact-SQL、SQL、CLR 等,还免费提供了和它配套的管理软件 SQL Server Management Studio Express 。
SQLExpress 有几个主要的限制:
1. 仅允许本地连接。
2. 数据库文件的最大尺寸为4GB,此限制只对数据文件(后缀名为 mdf),日志文件(后缀名为 ldf)不受此限。
3. 只使用一个CPU来运算,不能充分利用多CPU服务器的性能。
4. 可使用的记忆体量最高只有1GB。
5. 没有 SQL Agent,若要做排程服务必须自己编写。
因此它是 SQL Server 产品系列中面对低端的产品,是面对桌面型应用,或者小型的内部网络应用的。
所谓面对桌面型应用的软件,是指单用户在一台电脑就能完成操作的软件,强调操作指令和数据处理一体化,不考虑多用户共享权限和并发处理问题。与此相对的是客户/服务器(或浏览器/服务器)模式软件,SQL2005 就是 客户/服务器应用模式中的服务器端软件,SQL2005 只能管理附加(Attach)到服务器实例内的数据库文件(mdf文件),而此数据库文件也唯一归属于该SQL2005实例,不能被其它程序调用(当然,也不能被客户程序直接调用),必须由SQL2005实例执行分离(Dettach)该数据库文件后,才能由其它程序调用。
为了适应桌面应用,SQLExpress 比 SQL2005 新增了一项标志性的功能:不需将外置的数据库附加到 SQLExpress 服务器中,就能够直接调用,即在连接数据库语句中增加了 AttachDBFilename 选项。有此功能后,我们用 Microsoft Visual Studio 设计桌面型应用程序时,使用Access数据库或SQLExpress数据库的方式几乎相同,由于SQLExpress数据库的功能更多、扩展性更强,而且是嵌入到 Visual Studio 软件中的默认数据库,相关帮助文档更多,在编程中使用SQLExpress数据库甚至比Access更方便。唯一缺点是包含SQLExpress的软件尺寸较大,与使用Access数据库的软件相比,尺寸约大40兆,但现在的电脑硬盘容量有上百G,几十兆已不是问题。
从桌面数据库的发展过程来看,Foxpro 曾经很受软件开发者喜爱,后来微软公司开发的 VB、C# 等编程语言主推Access做桌面数据库,使得 Foxpro 逐渐衰落。当今 Internet 网络快速普及,纯桌面数据管理软件已经落伍,取而代之的是带有网络功能的客户/服务器(C/S)软件,或浏览器/服务器(B/S)软件,与之对应编程语言就是 Visual Studio 。使用 Visual Studio + SQLExpress 编写的面对桌面的数据管理软件,能够很容易升迁到客户/服务器应用(甚至就是二者兼备),有此推断,SQLExpress 也将逐渐替代 Access 。
目前,网络服务器和虚拟主机服务商提供的数据库产品主要就是 SQL Server 2000-2008 和 Access ,几乎没有 SQLExpress 。这是因为 SQLExpress 只能使用1GB内存,和一个CPU,在多用户共享应用时,随着用户增多,效能下降的很快,这个缺点与Access类似(也可能比Access强点有限)。由于SQLExpress和SQL2005管理的是同一种数据库文件,如果软件编程得当,就应该二者兼备。因此,在有SQL2005的服务器上,就没有必要再应用SQLExpress了。作为特例,在小型企业内部网中,由于SQL2005的购置费较高,也可使用SQLExpress作为客户 端/服务器系统中的服务器端软件。
如果要编写兼容SQLExpress和SQL2005的软件,在编程时只需将连接数据库字符串抽离出来, 用自定义函数来替代(该函数的返回值等于“连接数据库字符串”),就可以了。
我公司编写的“利和信息管理系统”软件,是面对桌面应用、客户/服务器应用,及浏览器/服务器应用于一身的软件,管理本机数据的后台数据库就是SQLExpress ,同时也支持调用Web网站SQL2005数据库。
SQL Server与SQL Server Express的区别的更多相关文章
- SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别
SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是 EXEC 和 SP_EXECUTESQL ,我们先来看一下两种方 ...
- SQL Server 表变量和临时表的区别
SQL Server 表变量和临时表的区别 一.表变量 表变量在SQL Server 2000中首次被引入.表变量的具体定义包括列定义,列名,数据类型和约束.而在表变量中可以使用的约束包括主键约束,唯 ...
- SQL Server 2008教程和Microsoft® SQL Server® 2008 R2 SP2 - Express Edition下载
教程 SQL Server 2008 Tutorialhttp://www.quackit.com/sql_server/sql_server_2008/tutorial/ 数据库下载 Microso ...
- Windows Server 2003 Sp2 下无法安装SQL Server 2008 Management Studio Express问题
Windows Server 2003 Sp2 下无法安装SQL Server 2008 Management Studio Express问题钉子 发表于 2010-5-22 1:42:51问题描述 ...
- SQL Server中SCAN 和SEEK的区别
SQL Server中SCAN 和SEEK的区别 SQL SERVER使用扫描(scan)和查找(seek)这两种算法从数据表和索引中读取数据.这两种算法构成了查询的基础,几乎无处不在.Scan会扫描 ...
- [转]SQL SERVER中openrowset与opendatasource的区别
本文转自:http://blog.sina.com.cn/s/blog_6399df820102vyy8.html SQL SERVER中openrowset与opendatasource的区别: o ...
- SQLServer学习-- Microsoft SQL Server 2008 Management Studio Express
Microsoft SQL Server 2008 Management Studio Express is a free, integrated environment for accessing, ...
- SQL SERVER 中的smalldatetime和datetime区别
原文:SQL SERVER 中的smalldatetime和datetime区别 smalldatetime不能到秒. 不過它占的空間小.(4位) datetime(8位) 而且兩者的時間範圍不一樣. ...
- [SDK2.2]SQL Azure (13) Azure的两种关系型数据库服务:SQL Azure与SQL Server VM的不同
<Windows Azure Platform 系列文章目录> 如果熟悉Windows Azure平台的用户不难发现,对于SQL Server数据库来说,微软提供了两种服务,分别是: -W ...
- sql语句优化SQL Server
MS SQL Server查询优化方法查询速度慢的原因很多,常见如下几种 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了 ...
随机推荐
- Java中class的getName()和getCanonicalName()两个方法的区别
getName()返回的是虚拟机里面的class的表示 getCanonicalName()返回的是更容易理解的表示 对于普通类来说,二者没什么区别,只是对于特殊的类型上有点表示差异 比如byte[] ...
- mac 下利用AndroidStudio APK获取签名信息
注:网上没找到特别好的.不是xxx.keystore 就是debug.keystore 而真正去找这些目录的时候系统就会提示没有这个秘钥库文件.所以就悲剧了 下面附上快速查看APK签名信息的方法(SH ...
- LDAP1-安装部署LDAP服务
基于Linux部署openldap服务 参考文档: https://blog.csdn.net/computer1024/article/details/78172785 参考文档: https:/ ...
- java 加密 解密 Illegal key size
java.security.InvalidKeyException: Illegal key size 今天遇到一个奇怪的问题. 自己做的加签验签功能已经没有问题了,本地测试通过,同事放到服务器上 ...
- Luogu P2056 [ZJOI2007]捉迷藏
入坑动态点分治的题目,感觉还不错被卡常后重构代码 首先静态点分治相信大家肯定都会,就是不断找重心然后暴力计算每棵子树内的贡献. 这题如果只有单次询问,我们很容易想到对于每个分治中心的所以儿子的子树中找 ...
- Pandas基础使用
Pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的. 1.导入pandas import pandas as pd 2.pandas数据类型: 1)Series:一维数据类型 ...
- rest_framework之视图及源码剖析
最初形态(工作中可能会使用) 引子 Django的CBV我们应该都有所了解及使用,大体概括一下就是通过定义类并在类中定义get post put delete等对应于请求方法的方法,当请求来的时候会自 ...
- HTTP请求中的Keep-Alive模式,是怎么区分多个请求的?
Keep-Alive模式 我们都知道HTTP是基于TCP的,每一个HTTP请求都需要进行三步握手.如果一个页面对某一个域名有多个请求,就会进行频繁的建立连接和断开连接.所以HTTP 1.0中出现了Co ...
- Python遇到问题总结
1.list的集合 循环删除一个list数据时,会遇到一丢丢问题,详情看Python的list循环遍历中,删除数据的正确方法 但是,里面说的要反转一下list集合,可以用a[::-1]这种方法. &g ...
- 爱奇艺2017秋招笔试(C++智能设备方向)
虽然有方向,但是好像题目都是随机题库抽取. 选择题都很基础...挖坑,待更新 编程: 一. 奇异数: 如果一个数字满足以下条件,我们就称它为奇异数: 1. 这个数字至少有两位 2. 这个数的最低两 ...