
依靠索引。
-------------------------
索引
使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构,例如 employee 表的姓(lname)列。如果要按姓查找特定职员,与必须搜索表中的所有行相比,索引会帮助您更快地获得该信息。
索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引的方式与您使用书籍中的索引的方式很相似:它搜索索引以找到特定值,然后顺指针找到包含该值的行。
在数据库关系图中,您可以在选定表的“索引/键”属性页中创建、编辑或删除每个索引类型。当保存索引所附加到的表,或保存该表所在的关系图时,索引将保存在数据库中。有关详细信息,请参见创建索引。
注意;并非所有的数据库都以相同的方式使用索引。有关更多信息,请参见数据库服务器注意事项,或者查阅数据库文档。
作为通用规则,只有当经常查询索引列中的数据时,才需要在表上创建索引。索引占用磁盘空间,并且降低添加、删除和更新行的速度。在多数情况下,索引用于数据检索的速度优势大大超过它的。
索引列
可以基于数据库表中的单列或多列创建索引。多列索引使您可以区分其中一列可能有相同值的行。
如果经常同时搜索两列或多列或按两列或多列排序时,索引也很有帮助。例如,如果经常在同一查询中为姓和名两列设置判据,那么在这两列上创建多列索引将很有意义。
确定索引的有效性:
检查查询的 WHERE 和 JOIN 子句。在任一子句中包括的每一列都是索引可以选择的对象。
对新索引进行试验以检查它对运行查询性能的影响。
考虑已在表上创建的索引数量。最好避免在单个表上有很多索引。
检查已在表上创建的索引的定义。最好避免包含共享列的重叠索引。
检查某列中唯一数据值的数量,并将该数量与表中的行数进行比较。比较的结果就是该列的可选择性,这有助于确定该列是否适合建立索引,如果适合,确定索引的类型。
索引类型
根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引。有关数据库所支持的索引功能的详细信息,请参见数据库文档。
提示:尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键或唯一约束。
唯一索引
唯一索引是不允许其中任何两行具有相同索引值的索引。
当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在 employee 表中职员的姓 (lname) 上创建了唯一索引,则任何两个员工都不能同姓。
主键索引
数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。
在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。
聚集索引
在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。
如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。
1 如何将数据库文件导入数据库中
1)打开你的sql server,找到要导入数据的数据库,右键——〉任务——〉导入数据
2)按照图示选择要导入的excel
3)选择导入到哪个数据库
4)导入excel选择第一项即可,选择第二项是表与表直接内容的筛选复制
5)选择源表和源视图
6)编辑映射页面
7)继续下一步,点击完成,看到传输数据完成页面
8
8)进入数据库刷新,查看刚刚导入的表,完成!
2 如何把excel表格数据导入到数据库
1、打开SQL Server 2014 Management Studio 数据库,并且登录进去;
2、新建一个数据库,将excel导入,在新建的数据名字上,鼠标右键,选择任务选项,之后导入数据,就会看到导入excel文件的窗口;
3、下拉框选中Microsoft Excel,浏览添加你需要导入到数据库的excel文件,然后点击下一步;
4、下拉框选中sql开头的,验证方式自己选择,一般是默认的验证方式,然后下面的数据库;
5、出现的这个页面不用动任何 *** 作,直接继续点击下一步即可;
6、现在表示导入成功,上面有各类详细的数据,可以选择关闭,这个时候记得刷新数据库的表,否则看不到新导入的数据。
3 怎样将EXCEL数据表导入到SQL中
第一步:登录到 SQL Server Management Studio
第二步:在 “对象资源管理器 ”中右键单击 “管理 ”,在d出列表中单击 “导入数据 ”
第三步:在 “导入向导 ”对话框中单击 “下一步 ”,进入到 “选择数据源 ”对话框,在 “数据源 ”列表中选择 “Microsoft Excel ”,同时选择相应的 Excel 文档,完成后单击 “下一步 ”(一定要勾选该对话框中的 “首行包含列名称 ”,因此它是将 Excel文档中的列标题为数据库表中的列项标题)
第四步:指定目标数据库服务,依次单击 “下一步 ”。。。。至到 “完成 ”
第五步:重新打到 SQL Server Management Studio,进入到导入的数据库表,可以发现所导入的 Excel文档数据。
4 sqlserver中怎么将sql文件导入数据库中
1打开SQL Server Management Studio,在对象资源管理器中,展开“SQLServer 实例”→“数据库”→“Be”节点,单击鼠标右键,选择“任务”→“导入数据”命令。出现欢迎界面,单击“下一步”按钮,出现“选择数据源”对话框。在“选择数据源”对话框中设置如下选项
2单击“下一步”按钮,出现“指定表复制或查询”对话框。在“指定表复制或查询”对话框中选中“复制一个或多个表或视图的数据”单选按钮,单击“下一步”按钮。出现“选择源表和源视图”对话框,设置如下选项,如图49所示,然后单击“下一步”按钮。
3在“保存并执行包”对话框中选中“立即执行”复选框,然后单击“下一步” 按钮。
在如图所示的对话框中单击“完成”按钮。
当执行完后,单击“关闭”按钮。
SQL Server:一提到SQL Server,大家一般都只想到Microsoft SQL Server,而非Sybase SQL Server。SQL Server最初是由Microsoft, Sybase and Ashton-Tate三家公司拦下的生意,是为IBM(又出现了)公司的OS/2 *** 作系统开发的。随着OS/2项目的失败,大家也分道扬镳。 Microsoft自然转向自己的win *** 作系统,作为windows NT软件方案的一部分。而Sybase则专注于Linux/Unix方向的数据库开发。
MS SQL Server主要面向中小企业。其最大的优势就是在于集成了MS公司的各类产品及资源,提供了强大的可视化界面、高度集成的管理开发工具,在快速构建商业智能(BI)方面颇有建树。 MS SQL Server是MS公司在软件集成方案中的重要一环,也为WIN系统在企业级应用中的普及做出了很大贡献。
典型应用场景
关于“大型数据库”,并没有严格的界定,有说以数据量为准,有说以恢复时间为准。如果综合数据库应用场景来说,大型数据库应用有以下特点:海量数据、高吞吐量;复杂逻辑、高计算量,以及高可用性。从这点上来说,Oracle,DB2就是比较典型的大型数据库,Sybase SQL Server也算是吧。下面分别说明之前三种数据库的应用场景。
5 怎么把excel表格导入sql数据库
方法/步骤
1
打开SQL Server Management Studio,按图中的路径进入导入数据界面。
2
导入的时候需要将EXCEL的文件准备好,不能打开。点击下一步。
数据源:选择“Microsoft Excel”除了EXCEL类型的数据,SQL还支持很多其它数据源类型。
选择需要导入的EXCEL文件。点击浏览,找到导入的文件确定。
再次确认文件路径没有问题,点击下一步。
默认为是使用的WINODWS身份验证,改为使用SQL身份验证。输入数据库密码,注意:数据库,这里看看是不是导入的数据库。也可以在这里临时改变,选择其它数据库。
选择导入数据EXCEL表内容范围,若有几个SHEET表,或一个SHEET表中有些数据我们不想导入,则可以编写查询指定的数据进行导入。点击下一步。
选择我们需要导入的SHEET表,比如我在这里将SHEET表名改为price,则导入后生面的SQL数据库表为price$。点击进入下一步。
点击进入下一步。
在这里完整显示了我们的导入的信息,执行内容,再次确认无误后,点击完成,开始执行。
可以看到任务执行的过程和进度。
执行成功:我们可以看看执行结果,已传输1754行,表示从EXCEL表中导入1754条数据,包括列名标题。这样就完成了,执行SQL查询语句:SELECT FROM price$就可以查看已导入的数据内容。
6 如何把SQL文件导入到数据库
附加数据库 或者导入数据库
SQL本身有数据导入的 *** 作。但如果要从一个备份的文件中导入数据,则要进行另外的 *** 作。下面以一个例子进行说明。
SQL服务器上已有一个DOE数据库,并且里面有大量的数据,现准备从另外一个备份文件A1BAK(不是DOE数据库的备份文件)中导入另外的数据(即导入后在DOE中增加一些数据表,表中已录有数据),并保持原DOE的数据不变。
1、首先,在“SQL企业管理器”中新建一个临时数据库A1。
2、右击A1数据库,选择:所有任务->还原数据库。
3、在“还原数据库”窗口中,选择:“从设备”。
4、点击“选择设备”。
5、点击“添加”。
6、从文件名中选择要还原的数据库文件,如A1BAK。
7、点击“确定”,返回“还原数据库”窗口。
8、点击“选项”卡,进入选项设置。
9、钩选:“在现有数据库上强制还原”。
10、修改“移到物理文件名”为:“c:\a1ldf”、“c:\a1mdf”。
11、点确定,即可导入备份文件中的数据到临时数据库A1中。
12、此时,你可以将数据从A1导入到另外一真正要导入的数据库中,如DOE数据库。
(下面的数据导入 *** 作为SQL2000企业管理器的一般数据导入导出 *** 作。)
13、在“SQL企业管理器”中选择“DOE”数据库。
14、右击DOE数据库,选择:所有任务->导入数据。
15、在“DTS导入/导出向导”窗口的“选择数据源”中,数据源选择刚才建立并导入数据的临时数据库A1。点击下一步。
16、在“选择目的”中,系统已经默认为DOE数据库。
17、连续点击“下一步”,直到完成。
经过上面的 *** 作,你已经成功地将备份文件A1BAK中数据导入DOE数据库中,并且DOE数据库原有数据不变。
此时,你可以删除临时数据库A1。
-------------------------------------------------------------
1打开SQLCC
2连接数据库
3连接表"ragnarok"(没有的可以新建一个)
4选择表按CTRL+Q
5点左侧的"打开"按扭(图标为一个文件夹)导入SQL文件
6删除深红色的部分(注意要全部删除,不然导入过程可能会出错)
7修改开头的数据库为"ragnarok",结尾修改数据库的用户名和密码
8按右侧的"导入"按扭(图标为一个感叹号)开始导入
9导入完毕后关闭窗口
10重新连接数据库,即可看到"ragnarok"里的数据表了
7 怎么将sql文件导入数据库啊
1、打开企业管理器,打开要导入数据的数据库,在表上按右键,所有任务-->;导入数据,d出DTS导入/导出向导,按 下一步 ,
2、选择数据源 Microsoft Excel 97-2000,文件名 选择要导入的xls文件,按 下一步 ,
3、选择目的 用于SQL Server 的Microsoft OLE DB提供程序,服务器选择本地(如果是本地数据库的话,如 VVV),使用SQL Server身份验证,用户名sa,密码为空,数据库选择要导入数据的数据库(如 client),按 下一步 ,
4、选择 用一条查询指定要传输的数据,按 下一步 ,
5、按 查询生成器,在源表列表中,有要导入的xls文件的列,将各列加入到右边的 选中的列 列表中,这一步一定要注意,加入列的顺序一定要与数据库中字段定义的顺序相同,否则将会出错,按 下一步 ,
6、选择要对数据进行排列的顺序,在这一步中选择的列就是在查询语句中 order by 后面所跟的列,按 下一步 ,
7、如果要全部导入,则选择 全部行,按 下一步,
8、则会看到根据前面的 *** 作生成的查询语句,确认无误后,按 下一步,
9、会看到 表/工作表/Excel命名区域 列表,在 目的 列,选择要导入数据的那个表,按 下一步,
10、选择 立即运行,按 下一步,
11、会看到整个 *** 作的摘要,按 完成 即可。
当然,在以上各个步骤中,有的步骤可以有多种选择,你可以根据自己的需要来选择相应的选项。例如,对编程有兴趣的朋友可以在第10步的时候选择保存DTS包,保存成Visual Basic文件,可以看看里面的代码,提高自己的编程水平
分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都有DBMS的一份完整拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的大型数据库。
这种组织数据库的方法克服了物理中心数据库组织的弱点。首先,降低了数据传送代价,因为大多数的对数据库的访问 *** 作都是针对局部数据库的,而不是对其他位置的数据库访问;其次,系统的可靠性提高了很多,因为当网络出现故障时,仍然允许对局部数据库的 *** 作,而且一个位置的故障不影响其他位置的处理工作,只有当访问出现故障位置的数据时,在某种程度上才受影响;第三,便于系统的扩充,增加一个新的局部数据库,或在某个位置扩充一台适当的小型计算机,都很容易实现。然而有些功能要付出更高的代价。例如,为了调配在几个位置上的活动,事务管理的性能比在中心数据库时花费更高,而且甚至抵消许多其他的优点。
常见的问题了,说起来蛮麻烦的,我只好将自己收藏的一些资料复制给你了
四大主流数据库比较
2005-11-02 文章出处:破釜沉舟
一、开放性
1 SQL Server
只能在windows上运行,没有丝毫的开放性, *** 作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据库。
2 Oracle
能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。
3 Sybase ASE
能在所有主流平台上运行(包括 windows)。 但由于早期Sybase与OS集成度不高,因此VERSION1192以下版本需要较多OS和DB级补丁。在多平台的混合环境中,会有一定问题。
4 DB2
能在所有主流平台上运行(包括windows)。最适于海量数据。DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%。
二、可伸缩性,并行性
1 SQL server
并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。
2 Oracle
并行服务器通过使一组结点共享同一簇中的工作来扩展windownt的能力,提供高可用性和高伸缩性的簇的解决方案。如果windowsNT不能满足需要,用户可以把数据库移到UNIX中。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。
3 Sybase ASE
虽然有DB SWITCH来支持其并行服务器,但DB SWITCH在技术层面还未成熟,且只支持版本125以上的ASE SERVER。DB SWITCH技术需要一台服务器充当SWITCH,从而在硬件上带来一些麻烦。
4 DB2
具有很好的并行性。DB2把数据库管理扩充到了并行的、多节点的环境。数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务日志。数据库分区有时被称为节点安全性。
三、安全认证
1 SQL server
没有获得任何安全证书。
2 Oracle Server
获得最高认证级别的ISO标准认证。
3 Sybase ASE
获得最高认证级别的ISO标准认证。
4 DB2
获得最高认证级别的ISO标准认证。
四、性能
1 SQL Server
多用户时性能不佳
2 Oracle
性能最高, 保持开放平台下的TPC-D和TPC-C的世界记录。
3 Sybase ASE
性能接近于SQL Server,但在UNIX平台下的并发性要优与 SQL Server。
4 DB2
性能较高适用于数据仓库和在线事物处理。
五、客户端支持及应用模式
1 SQL Server
C/S结构,只支持windows客户,可以用ADO、DAO、OLEDB、ODBC连接。
2 Oracle
多层次网络计算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接。
3 Sybase ASE
C/S结构,可以用ODBC、Jconnect、Ct-library等网络客户连接。
4 DB2
跨平台,多层结构,支持ODBC、JDBC等客户。
六、 *** 作简便
1 SQL Server
*** 作简单,但只有图形界面。
2 Oracle
较复杂,同时提供GUI和命令行,在windowsNT和unix下 *** 作相同。
3 Sybase ASE
较复杂,同时提供GUI和命令行。但GUI较差,常常无法及时状态,建议使用命令行。
4 DB2
*** 作简单,同时提供GUI和命令行,在windowsNT和unix下 *** 作相同。
七、使用风险
1 SQL server
完全重写的代码,经历了长期的测试,不断延迟,许多功能需要时间来证明。并不十分兼容。
2 Oracle
长时间的开发经验,完全向下兼容。得到广泛的应用。完全没有风险。
3 Sybase ASE
向下兼容, 但是ct-library 程序不益移植。
4 DB2
在巨型企业得到广泛的应用,向下兼容性好。风险小。
==========================================================
1delphi、java()什么的与它们又是什么关系
delphi、java都是程序设计语言,一般的程序或是系统都是由程序语言和数据库共同组成的,现在基本所有的语言和数据库都兼容,但是还是有一些效率问题的比如C可能和MSSQL兼容性好些,而JAVA可能和HSQL一起用的好些,当然一般数据库的选择和程序的规模的联系还是大点
================
对于LZ的补充:
"Microsoft SQL Server是开放式的系统,其它系统可以与它进行完好的交互 *** 作",什么是真正的开放我想只有MYSQL,HSQL这些开源的东西才能叫开放吧MS的东西从来就不开源,这也能叫开放至于与其他系统的交互 *** 作说的就更搞笑了说这个话的人不知道有没一点常识MS的老对手SUN为什么能生存正是因为JAVA基本能在所有平台上运行的原因自己看下JAVA或是SUN公司的介绍吧我看到这句话真的很震惊,就象到现在还有人说地球是方的一样
至于VFP好象就是现在计算机2级考试要考这个吧一般都没怎么听说用这个,至少是我不知道吧
最近做了个项目 实现对存在千万条记录的库表进行插入 查询 *** 作 原以为对数据库的插入 查询是件很容易的事 可不知当数据达到百万甚至千万条级别的时候 这一切似乎变得相当困难 几经折腾 总算完成了任务
避免使用Hibernate框架
Hibernate用起来虽然方便 但对于海量数据的 *** 作显得力不从心
关于插入
试过用Hibernate一次性进行 万条左右数据的插入 若ID使用sequence方式生成 Hibernate将分 万次从数据库取得 万个sequence 构造成相应对象后 再分五万次将数据保存到数据库 花了我十分钟时间 主要的时间不是花在插入上 而是花在 万次从数据库取sequence上 弄得我相当郁闷 虽然后来把ID生成方式改成increase解决了问题 但还是对那十分钟的等待心有余悸
关于查询
Hibernate对数据库查询的主要思想还是面向对象的 这将使许多我们不需要查询的数据占用了大量的系统资源(包括数据库资源和本地资源) 由于对Hibernate的偏爱 本着不抛弃 不放弃的作风 做了包括配SQL 改进SQL等等的相当多的尝试 可都以失败告终 不得不忍痛割爱了
写查询语句时 要把查询的字段一一列出
查询时不要使用类似select from x_table的语句 要尽量使用select id name from x_table 以避免查询出不需要的数据浪费资源 对于海量数据而言 一个字段所占用的资源和查询时间是相当可观的
减少不必要的查询条件
当我们在做查询时 常常是前台提交一个查询表单到后台 后台解析这个表单 而后进行查询 *** 作 在我们解析表单时 为了方便起见 常常喜欢将一些不需要查询的条件用永真的条件来代替(如 select count(id) from x_table where name like % ) 其实这样的SQL对资源的浪费是相当可怕的 我试过对于同样的近一千万条记录的查询来说 使用select count(id) from x_table 进行表查询需要 秒 而使用select count(id) from x_table where name like % 却花了 秒
避免在查询时使用表连接
在做海量数据查询时 应尽量避免表连接(特别是左 右连接) 万不得已要进行表连接时 被连接的另一张表数据量一定不能太大 若连接的另一张表也是数万条的话 那估计可以考虑重新设计库表了 因为那需要等待的时间决不是正常用户所能忍受的
嵌套查询时 尽可能地在第一次select就把查询范围缩到最小
在有多个select嵌套查询的时候 应尽量在最内层就把所要查询的范围缩到最小 能分页的先分页 很多时候 就是这样简单地把分页放到内层查询里 对查询效率来说能形成质的变化
lishixinzhi/Article/program/Oracle/201311/17394
以上就是关于数据库文件是如何在海量数据中快速确定需要数据的位置原理是什么全部的内容,包括:数据库文件是如何在海量数据中快速确定需要数据的位置原理是什么、怎么把数据库表导入数据库、如何在海量数据环境下,搭建分布式数据库系统等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)