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吞吐量小,形成了 ...
随机推荐
- 在JS中调用CS里的方法(PageMethods)
在JS中调用CS里的方法(PageMethods) 2014年04月28日 11:18:18 被动 阅读数:2998 最近一直在看别人写好的一个项目的源代码,感觉好多东西都是之前没有接触过的.今天 ...
- openjdk8源码编译
1. 安装源码管理工具 yum install mercurial 2. 下载源码 hg clone http://hg.openjdk.java.net/jdk8u/jdk8u jdk8u #执行源 ...
- StackExchange.Redis使用配置
转自:http://www.cnblogs.com/deosky/p/4848403.html Configurationredis有很多不同的方法来配置连接字符串 , StackExchange.R ...
- LDAP2-创建OU创建用户
创建OU创建用户 1.创建OU 选择Organisational unit 组织单元 输入OU名称 提交信息 结果创建成功 2.创建员工 选择ou选择新建子条目 选择默认模板 选择inetorgper ...
- HTML+CSS之盒子模型
一.元素分类 CSS中html的标签元素大体分为三种类型 1.块状元素 @特点: #每个块级元素都从新的一行开始,并且其后的元素也另起一行(一个块级元素独占一行) #元素的高度.宽度.行高以及顶和底边 ...
- UVA12298 Super Poker II
怎么又是没人写题解的UVA好题,个人感觉应该是生成函数的大板子题了. 直接做肯定爆炸,考虑来一发优化,我们记一个多项式,其中\(i\)次项的系数就表示对于\(i\)这个数有多少种表示方式. 那么很明显 ...
- js 对象与数组相互转化的快捷方法 Object.keys()、Object.values()、Object.entries()
Object.keys() Object.keys 返回一个所有元素为字符串的数组,其元素来自于从给定的object上面可直接枚举的属性.这些属性的顺序与手动遍历该对象属性时的一致. 例如: let ...
- Java函数式编程和lambda表达式
为什么要使用函数式编程 函数式编程更多时候是一种编程的思维方式,是种方法论.函数式与命令式编程的区别主要在于:函数式编程是告诉代码你要做什么,而命令式编程则是告诉代码要怎么做.说白了,函数式编程是基于 ...
- .NET Core Community 第三个千星项目诞生:爬虫 DotnetSpider
本文所有打赏将全数捐赠于 NCC(NCC 的资金目前由 倾竹大人 负责管理),请注明捐赠于 NCC.捐赠情况将由倾竹大人在此处公示. DotnetSpider 至力于打造一个轻量化.高效率.易开发.可 ...
- 面试 6:拓展性更好的代码,更容易拿到 Offer
今天给大家带来的是 <剑指 Offer>习题:调整数组顺序使奇数位于偶数前面,纯 Java 实现希望大家多加思考. 面试题:输入一个整型数组,实现一个函数来调整该数组中的数字的顺序,使 ...