spring7777777
2008-12-10 20:16
缓存是king

lwei71
2008-12-14 11:42
数据库直接安装在文件中的吧,试试把数据库文件直接安装到裸磁盘中。

使用原始分区

Microsoft SQL Server 2000 支持使用原始分区创建数据库文件。原始分区是指没有用 Windows NT 文件系统(如 FAT 和 NTFS)格式化的磁盘分区。在某些情况下,使用在原始分区上创建的数据库,可以获得比在 NTFS 或 FAT 上更高的性能。但是,对于大多数安装,首选方法是使用在 NTFS 或 FAT 分区上创建的文件。

在原始分区上创建数据库文件时,不必指定构成该数据库的文件的物理名称,只需指定要在其上创建数据库文件的磁盘的驱动器号。

如果正在使用 Microsoft Windows 2000 Server,则可以创建指向原始分区的已装入驱动器。在空文件夹中装入一个本地驱动器时,Windows 2000 将给该驱动器分配驱动器路径而不是驱动器号。已装入驱动器不受驱动器号强加的 26 个驱动器的限制,因此可以使用任意多个原始分区。在已装入驱动器上创建数据库文件时,必须在文件名后尾随一个反斜线符号来结束驱动器路径,例如,E:\ Sample name\。有关创建已装入驱动器的信息,请参见 Windows 2000 Server 文档。

在使用原始分区时,需考虑如下限制:

每个原始分区上只能创建一个数据库文件。逻辑分区必须配置为一个单一的数据库文件,因为原始分区上没有文件系统。

常规文件系统操作(如复制、移动和删除等)不能在原始分区上使用。

原始分区上的数据库文件不能用 Windows NT 备份实用工具备份。但是,仍可创建 SQL Server 数据库备份或事务日志备份。

原始分区上的数据库文件不能自动扩充。或者最初就以其实际大小创建数据库,或者手动扩充数据库文件。有关更多信息,请参见扩充数据库。

只能使用字母编号的分区(例如 E:)或已装入的驱动器(例如 E:\Sample name\)。不能使用数字编号的设备。

文件系统服务(例如坏块替换)在原始分区上不可用。

H. 使用原始分区

下面的示例使用原始分区创建名为 Employees 的数据库。执行语句时,原始分区必须存在,并且每个原始分区只能创建一个文件。

USE master

GO

CREATE DATABASE Employees

ON

( NAME = Empl_dat,

FILENAME = 'f:',

SIZE = 10,

MAXSIZE = 50,

FILEGROWTH = 5 )

LOG ON

( NAME = 'Sales_log',

FILENAME = 'g:',

SIZE = 5MB,

MAXSIZE = 25MB,

FILEGROWTH = 5MB )

GO

I. 使用已装入的驱动器

下面的示例使用指向原始分区的已装入驱动器创建名为 Employees 的数据库。此功能只在 Microsoft Windows 2000 Server 中才可用。.执行语句时必须已经存在已装入的驱动器和原始分区,并且每个原始分区上只能有一个文件。当在已装入的驱动器上创建数据库文件时,必须用尾随反斜线结束驱动器路径。

USE master

GO

CREATE DATABASE Employees

ON

( NAME = Empl_dat,

FILENAME = 'd:\sample data dir\',

SIZE = 10,

MAXSIZE = 50,

FILEGROWTH = 5 )

LOG ON

( NAME = 'Sales_log',

FILENAME = 'd:\sample log dir\',

SIZE = 5MB,

MAXSIZE = 25MB,

FILEGROWTH = 5MB )

GO

wlmouse
2009-03-13 15:29
建议你看看《SQL语言艺术》这本书。在纯SQL方面这本书告诉我们如何优雅的编写SQL操作数据库。我认为你们SQL语句编写不当的可能性相当大。两千万对于现在的数据库来说未必算大。

说真的,如何高效写SQL必须得学。有些人写的SQL要反复扫描一个表好几遍,优化一下语句能快好几百倍。连带着他写的HQL都有问题。你写SQL重复扫描,写HQL也一样。HQL被转化成SQL后,照样要反复读取。

beepbug
2009-03-13 19:12

ASP+储存过程+SQL Server

改为

.NET+储存过程+SQL Server

只是换了表现层,对检索速度没有影响。

Google搜索是一个分布式计算,没错。不过Google搜索所处理的数据,本身就是分布的。现在楼主的数据是集中的,需要先把它分布化。不过,把库拆成几个小库,确实能提高检索速度。

你说了“一般数据库的优化方法都用在上面了”,可你没说到表结构设计。这个才是重要因素。

优化方法包括建索引吧?提醒一点,索引过多,会明显降低检索速度。只建必要的索引。

楼上说的对,最后该优化SQL语句。

usejava
2009-04-20 10:47
两千万行不是多大的数据啊,这点数据优化下SQL和数据库应该就没问题了。

我那个两亿多行的数据也就一台服务器。别轻易搞什么分布,效率可能还更差。

猜你喜欢
2Go 上一页 1 2