老尸 发表于 2015-1-16 22:41:47

MYSQL网站制作之进修oracle sql loader 的利用

这一切听起来不错,无疑DBaaS具有很多相对于RDBMS的优势。然而MySQL学习教程,DBaaS也有其局限性,云服务中固有的局限性就是之一。当客户开始将数据放入云端时,他们会遭遇到无法控制的网络性能问题。oracle
进修oraclesqlloader的利用

一:sqlloader的特性
oracle本人带了良多的工具能够用来举行数据的迁徙、备份和恢复等事情。可是每一个工具都有本人的特性。
好比说exp和imp能够对数据库中的数据举行导出和导出的事情,是一种很好的数据库备份和恢复的工具,因而次要用在数据库的热备份和恢复方面。有着速率快,利用复杂,快速的长处;同时也有一些弱点,好比在分歧版本数据库之间的导出、导进的历程当中,总会呈现如许大概那样的成绩,这个大概是oracle公司本人产物的兼容性的成绩吧。
sqlloader工具却没有这方面的成绩,它能够把一些以文本格局寄存的数据顺遂的导进到oracle数据库中,是一种在分歧数据库之间举行数据迁徙的十分便利并且通用的工具。弱点就速率对照慢,别的对blob等范例的数据就有点贫苦了。

二:sqlloader的匡助

C:>sqlldr

SQL*Loader:Release9.2.0.1.0-Productionon礼拜六10月914:48:122004

Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.


用法:SQLLDRkeyword=value[,keyword=value,...]

无效的关头字:

userid--ORACLEusername/password
control--Controlfilename
log--Logfilename
bad--Badfilename
data--Datafilename
discard--Discardfilename
discardmax--Numberofdiscardstoallow(全体默许)
skip--Numberoflogicalrecordstoskip(默许0)
load--Numberoflogicalrecordstoload(全体默许)
errors--Numberoferrorstoallow(默许50)
rows--Numberofrowsinconventionalpathbindarrayorbetweendirectp
athdatasaves
(默许:惯例路径64,一切间接路径)
bindsize--Sizeofconventionalpathbindarrayinbytes(默许256000)
silent--Suppressmessagesduringrun(header,feedback,errors,discards,part
itions)
direct--usedirectpath(默许FALSE)
parfile--parameterfile:nameoffilethatcontainsparameterspecification
s
parallel--doparallelload(默许FALSE)
file--Filetoallocateextentsfrom
skip_unusable_indexes--disallow/allowunusableindexesorindexpartitions(默
认FALSE)
skip_index_maintenance--donotmaintainindexes,markaffectedindexesasunus
able(默许FALSE)
readsize--SizeofReadbuffer(默许1048576)
external_table--useexternaltableforload;NOT_USED,GENERATE_ONLY,EXECUTE(
默许NOT_USED)
columnarrayrows--Numberofrowsfordirectpathcolumnarray(默许5000)
streamsize--Sizeofdirectpathstreambufferinbytes(默许256000)
multithreading--usemultithreadingindirectpath
resumable--enableordisableresumableforcurrentsession(默许FALSE)
resumable_name--textstringtohelpidentifyresumablestatement
resumable_timeout--waittime(inseconds)forRESUMABLE(默许7200)
date_cache--size(inentries)ofdateconversioncache(默许1000)

PLEASENOTE:命令行参数能够由地位或关头字指定
。前者的例子是sqlload
scott/tigerfoo;后一种情形的一个示例是sqlldrcontrol=foo
userid=scott/tiger.地位指定参数的工夫必需早于
但不成迟于由关头字指定的参数。比方,
同意sqlldrscott/tigercontrol=foologfile=log,可是
不同意sqlldrscott/tigercontrol=foolog,即便
参数log的地位准确。

C:>

三:sqlloader利用例子
a)SQLLoader将Excel数据导出到Oracle
1.创立SQL*Loader输出数据所必要的文件,均保留到C:,用记事本编纂:
把持文件:input.ctl,内容以下:

  loaddata          --1、把持文件标识
  infiletest.txt      --2、要输出的数据文件名为test.txt
  appendintotabletest    --3、向表test中追加纪录
  fieldsterminatedbyX09  --4、字段停止于X09,是一个制表符(TAB)
  (id,username,password,sj)  -----界说列对应按次

a、insert,为缺省体例,在数据装载入手下手时请求表为空
b、append,在表中追加新纪录
c、replace,删除旧纪录,交换成新装载的纪录
d、truncate,同上

在DOS窗口下利用SQL*Loader命令完成数据的输出

C:>sqlldruserid=system/managercontrol=input.ctl
默许日记文件名为:input.log
默许坏纪录文件为:input.bad

2.另有一种办法
能够把EXCEL文件另存为CSV(逗号分开)(*.csv),把持文件就改成用逗号分开
LOADDATA
INFILEd:car.csv
APPENDINTOTABLEt_car_temp
FIELDSTERMINATEDBY","
(phoneno,vip_car)

b)在把持文件中间接导进数据

1、把持文件test.ctl的内容
--TheformatforexecutingthisfilewithSQLLoaderis:
--SQLLDRcontrol=<filename>Besuretosubstituteyour
--versionofSQLLOADERandthefilenameforthisfile.
LOADDATA
INFILE*
BADFILEC:DocumentsandSettingsJackey桌面WMCOUNTRY.BAD
DISCARDFILEC:DocumentsandSettingsJackey桌面WMCOUNTRY.DSC
INSERTINTOTABLEEMCCOUNTRY
Fieldsterminatedby";"Optionallyenclosedby"
(
COUNTRYIDNULLIF(COUNTRYID="NULL"),
COUNTRYCODE,
COUNTRYNAME,
CONTINENTIDNULLIF(CONTINENTID="NULL"),
MAPIDNULLIF(MAPID="NULL"),
CREATETIMEDATE"MM/DD/YYYYHH24:MI:SS"NULLIF(CREATETIME="NULL"),
LASTMODIFIEDTIMEDATE"MM/DD/YYYYHH24:MI:SS"NULLIF(LASTMODIFIEDTIME="NULL")
)
BEGINDATA
1;"JP";"Japan";1;9;"09/16/200416:31:32";NULL
2;"CN";"China";1;10;"09/16/200416:31:32";NULL
3;"IN";"India";1;11;"09/16/200416:31:32";NULL
4;"AU";"Australia";6;12;"09/16/200416:31:32";NULL
5;"CA";"Canada";4;13;"09/16/200416:31:32";NULL
6;"US";"UnitedStates";4;14;"09/16/200416:31:32";NULL
7;"MX";"Mexico";4;15;"09/16/200416:31:32";NULL
8;"GB";"UnitedKingdom";3;16;"09/16/200416:31:32";NULL
9;"DE";"Germany";3;17;"09/16/200416:31:32";NULL
10;"FR";"France";3;18;"09/16/200416:31:32";NULL
11;"IT";"Italy";3;19;"09/16/200416:31:32";NULL
12;"ES";"Spain";3;20;"09/16/200416:31:32";NULL
13;"FI";"Finland";3;21;"09/16/200416:31:32";NULL
14;"SE";"Sweden";3;22;"09/16/200416:31:32";NULL
15;"IE";"Ireland";3;23;"09/16/200416:31:32";NULL
16;"NL";"Netherlands";3;24;"09/16/200416:31:32";NULL
17;"DK";"Denmark";3;25;"09/16/200416:31:32";NULL
18;"BR";"Brazil";5;85;"09/30/200411:25:43";NULL
19;"KR";"Korea,Republicof";1;88;"09/30/200411:25:43";NULL
20;"NZ";"NewZealand";6;89;"09/30/200411:25:43";NULL
21;"BE";"Belgium";3;79;"09/30/200411:25:43";NULL
22;"AT";"Austria";3;78;"09/30/200411:25:43";NULL
23;"NO";"Norway";3;82;"09/30/200411:25:43";NULL
24;"LU";"Luxembourg";3;81;"09/30/200411:25:43";NULL
25;"PT";"Portugal";3;83;"09/30/200411:25:43";NULL
26;"GR";"Greece";3;80;"09/30/200411:25:43";NULL
27;"IL";"Israel";1;86;"09/30/200411:25:43";NULL
28;"CH";"Switzerland";3;84;"09/30/200411:25:43";NULL
29;"A1";"AnonymousProxy";0;0;"09/30/200411:25:43";NULL
30;"A2";"SatelliteProvider";0;0;"09/30/200411:25:43";NULL
31;"AD";"Andorra";3;0;"09/30/200411:25:43";NULL
32;"AE";"UnitedArabEmirates";1;0;"09/30/200411:25:43";NULL
33;"AF";"Afghanistan";1;0;"09/30/200411:25:43";NULL
34;"AG";"AntiguaandBarbuda";7;0;"09/30/200411:25:43";NULL
35;"AI";"Anguilla";7;0;"09/30/200411:25:43";NULL
36;"AL";"Albania";3;0;"09/30/200411:25:43";NULL
37;"AM";"Armenia";3;0;"09/30/200411:25:43";NULL
38;"AN";"NetherlandsAntilles";3;0;"09/30/200411:25:43";NULL
39;"AO";"Angola";2;0;"09/30/200411:25:43";NULL
40;"AP";"Asia/PacificRegion";2;0;"09/30/200411:25:43";NULL
41;"AQ";"Antarctica";8;0;"09/30/200411:25:43";NULL
42;"AR";"Argentina";5;0;"09/30/200411:25:43";NULL
43;"AS";"AmericanSamoa";6;0;"09/30/200411:25:43";NULL
44;"AW";"Aruba";5;0;"09/30/200411:25:43";NULL
45;"AZ";"Azerbaijan";1;0;"09/30/200411:25:43";NULL
46;"BA";"BosniaandHerzegovina";3;0;"09/30/200411:25:43";NULL
47;"BB";"Barbados";5;0;"09/30/200411:25:43";NULL
48;"BD";"Bangladesh";1;0;"09/30/200411:25:43";NULL
49;"BF";"BurkinaFaso";2;0;"09/30/200411:25:43";NULL
50;"BG";"Bulgaria";3;0;"09/30/200411:25:43";NULL
51;"BH";"Bahrain";1;0;"09/30/200411:25:43";NULL
52;"BI";"Burundi";2;0;"09/30/200411:25:43";NULL
53;"BJ";"Benin";2;0;"09/30/200411:25:43";NULL
54;"BM";"Bermuda";4;0;"09/30/200411:25:43";NULL
55;"BN";"BruneiDarussalam";1;0;"09/30/200411:25:43";NULL
56;"BO";"Bolivia";5;0;"09/30/200411:25:43";NULL
57;"BS";"Bahamas";7;0;"09/30/200411:25:43";NULL
58;"BT";"Bhutan";1;0;"09/30/200411:25:43";NULL
59;"BV";"BouvetIsland";5;0;"09/30/200411:25:43";NULL
60;"BW";"Botswana";2;0;"09/30/200411:25:43";NULL
61;"BY";"Belarus";3;0;"09/30/200411:25:43";NULL
2、实行导进命令
C:>sqlldruserid=system/managercontrol=test.ctl

c)庞大格局的导进

这种服务也提供了足够的监控功能来跟踪性能和使用情况,在问题发生时将发出通知并生成一定深度的分析报告。

若相依 发表于 2015-1-19 21:18:11

不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?

再见西城 发表于 2015-1-28 11:23:22

我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过!

小女巫 发表于 2015-2-5 21:09:31

每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。

admin 发表于 2015-2-13 15:22:21

另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);

海妖 发表于 2015-3-3 23:27:50

可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。

不帅 发表于 2015-3-11 14:42:28

从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。

若天明 发表于 2015-3-19 00:07:42

不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
页: [1]
查看完整版本: MYSQL网站制作之进修oracle sql loader 的利用