MS指的是微软Microsoft,SQL是结构化查询语言结合起来就是说:MS SQL是指微软的SQL Server数据库服务器,它是一个数据库平台,提供数据库的从服务器到终端的完整的解决方案,其中数据库服务器部分,是一个数据库管理系统,用于建立、使用和维护数据库。
通俗的总结一下:数据库就是一堆数据在那里,数据库管理系统就是一个软件去管那堆东西。
MSSQL和ACCESS都是Microsoft公司开发的可以用于ASP程序中的网站数据库,不过MSSQL比ACCESS功能强大,大型网站建议采用MSSQL数据库
首先 将数据库附加在你本地的sql里(比如sql2000)其次在你所下载的网站源程序中找到一个叫做webconfig文件 用记事本打开 找到<connectionStrings>节点并进行修改如下: <connectionStrings>
<add name="ConnectionString" connectionString="Data Source=输入您本机数据库的实例名称(如果安装sql2000时为默认安装就输入(local)我的是交互模式登陆为:Data Source=E8E911E2AE034D0\SQL2000);user id=连接本地数据库用户名称(安装数据库2000时默认为sa);pwd= 连接本地数据库密码(安装数据库2000时默认为空);Database=输入您所下载网站数据库并且附加在sql2000上的名称" providerName="SystemDataSqlClient"/>
</connectionStrings>
把网站发布到IIS服务器或者Apache服务器即可。
如果您在webconfig文件中找到的<connectionStrings>节点为空 那么连接数据库的字符串可能在<appSettings>节点,否则连接数据库字符串就很可能在具体的页面代码中啦。
祝你成功!
具体问题具体分析,举例来说明为什么磁盘IO成瓶颈数据库的性能急速下降了。
为什么当磁盘IO成瓶颈之后, 数据库的性能不是达到饱和的平衡状态,而是急剧下降。为什么数据库的性能有非常明显的分界点,原因是什么?
相信大部分做数据库运维的朋友,都遇到这种情况。 数据库在前一天性能表现的相当稳定,数据库的响应时间也很正常,但就在今天,在业务人员反馈业务流量没有任何上升的情况下,数据库的变得不稳定了,有时候一个最简单的insert *** 作, 需要几十秒,但99%的insert却又可以在几毫秒完成,这又是为什么了?
dba此时心中有无限的疑惑,到底是什么原因呢 磁盘IO性能变差了?还是业务运维人员反馈的流量压根就不对? 还是数据库内部出问题?昨天不是还好好的吗?
当数据库出现响应时间不稳定的时候,我们在 *** 作系统上会看到磁盘的利用率会比较高,如果观察仔细一点,还可以看到,存在一些读的IO 数据库服务器如果存在大量的写IO,性能一般都是正常跟稳定的,但只要存在少量的读IO,则性能开始出现抖动,存在大量的读IO时(排除配备非常高速磁盘的机器),对于在线交易的数据库系统来说,大概性能就雪崩了。为什么 *** 作系统上看到的磁盘读IO跟写IO所带来的性能差距这么大呢?
如果亲之前没有注意到上述的现象,亲对上述的结论也是怀疑。但请看下面的分解。
在写这个文章之前,作者阅读了大量跟的IO相关的代码,如异步IO线程的相关的,innodb_buffer池相关的,以及跟读数据块最相关的核心函数buf_page_get_gen函数以及其调用的相关子函数。为了将文章写得通俗点,看起来不那么累,因此不再一行一行的将代码解析写出来。
咱们先来提问题。 buf_page_get_gen函数的作用是从Buffer bool里面读数据页,可能存在以下几种情况。
提问 数据页不在buffer bool 里面该怎么办?
回答:去读文件,将文件中的数据页加载到buffer pool里面。下面是函数buffer_read_page的函数,作用是将物理数据页加载到buffer pool, 中显示
buffer_read_page函数栈的顶层是pread64(),调用了 *** 作系统的读函数。
buf_read_page的代码
如果去读文件,则需要等待物理读IO的完成,如果此时IO没有及时响应,则存在堵塞。这是一个同步读的 *** 作,如果不完成该线程无法继续后续的步骤。因为需要的数据页不再buffer 中,无法直接使用该数据页,必须等待 *** 作系统完成IO
再接着上面的回答提问:
当第二会话线程执行sql的时候,也需要去访问相同的数据页,它是等待上面的线程将这个数据页读入到缓存中,还是自己再发起一个读磁盘的然后加载到buffer的请求呢? 代码告诉我们,是前者,等待第一个请求该数据页的线程读入buffer pool。
试想一下,如果第一个请求该数据页的线程因为磁盘IO瓶颈,迟迟没有将物理数据页读入buffer pool, 这个时间区间拖得越长,则造成等待该数据块的用户线程就越多。对高并发的系统来说,将造成大量的等待。 等待数据页读入的函数是buf_wait_for_read,下面是该函数相关的栈。
通过解析buf_wait_for_read函数的下层函数,我们知道其实通过首先自旋加锁pin的方式,超过设定的自旋次数之后,进入等待,等待IO完成被唤醒。这样节省不停自旋pin时消耗的cpu,但需要付出被唤起时的开销。
再继续扩展问题: 如果会话线程A 经过物理IO将数据页1001读入buffer之后,他需要修改这个页,而在会话线程A之后的其他的同样需要访问数据页1001的会话线程,即使在数据页1001被入读buffer pool之后,将仍然处于等待中。因为在数据页上读取或者更新的时候,同样需要上锁,这样才能保证数据页并发读取/更新的一致性。
由此可见,当一个高并发的系统,出现了热点数据页需要从磁盘上加载到buffer pool中时,造成的延迟,是难以想象的。因此排在等待热点页队列最后的会话线程最后才得到需要的页,响应时间也就越长,这就是造成了一个简单的sql需要执行几十秒的原因。
再回头来看上面的问题,mysql数据库出现性能下降时,可以看到 *** 作系统有读IO。 原因是,在数据库对数据页的更改,是在内存中的,然后通过检查点线程进行异步写盘,这个异步的写 *** 作是不堵塞执行sql的会话线程的。所以,即使看到 *** 作系统上有大量的写IO,数据库的性能也是很平稳的。但当用户线程需要查找的数据页不在buffer pool中时,则会从磁盘上读取,在一个热点数据页不是非常多的情况下,我们设置足够大的innodb_buffer_pool的size, 基本可以缓存所有的数据页,因此一般都不会出现缺页的情况,也就是在 *** 作系统上基本看不到读的IO。 当出现读的IO时,原因时在执行buf_read_page_low函数,从磁盘上读取数据页到buffer pool, 则数据库的性能则开始下降,当出现大量的读IO,数据库的性能会非常差。
看你规模大不大了,小的话access足够了
用2007或 2003要看你的服务器支持了2003是常用的两者性能上也没什么差别
mssql属于大型数据库,也就是SQL server,是微软开发的
其次要看你做聊天室用的语言和环境,asp的话一般配合这两种数据库access不需要数据库服务器,但要做好安全工作 (防注入,防下载等)
php配合mysql,pg sql等都属于免费开源的东西,性能也不错,属于跨平台性的
jsp一般就是开发高端,复杂的应用了一般都使用大型数据库oracle,DB2等
MSSQL有导入导出工具啊,
首先你在本地把数据库导出为SQL文件
然后再用本地的MSSQL工具登录到这个远程的服务器上,进行导入步骤就可以了;
注意不要搞混了,一个连接是本地,一个是你这个远程服务器,都是可以在一个视图界面里 *** 作的;
其实你直接登录到远程服务器,导入本地数据库数据也可以。
我最近也在研究数据库的复制和发布,你可以在sql的查询管理器的帮助里搜索发布功能。
第一种办法:可以写一个程序定时去检测网站的数据更新ID如果有一个有变化就自动给其它数据库发更新请求更新数据,可以用触发器来做,也可以自己写程序实现。
第二种办法:数据库建立发布功能,然后数据实时同步。
第三种办法:你的数据怎么更新呢,你可以POST数据到四个页面保证四个数据库都有数据。
第四中办法:建立第5个数据库所有数据都发布到这里,然后定时同步数据到另外四个数据库,同步数据可以采用window自带任务管理期,自己写vbs脚本就可以实现,缺点就是数据同步时间差异,有自己设置的同步时间决定。
以上就是关于MSSQL是什么东西有什么用全部的内容,包括:MSSQL是什么东西有什么用、下了一个数据库是mssql的网站源程序,怎么在本地打开网站数据库怎么配置,请高手指点。谢谢、如何判断MSSQL数据库磁盘出现了瓶颈等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)