ts編譯速度
『壹』 為什麼DSP晶元採用第電壓啊
德州儀器公司
眾所周知,美國德州儀器(Texas Instruments,TI)是世界上最知名的DSP晶元生產廠商,其產品應用也最廣泛,TI公司生產的丁MS320系列 DSP晶元廣泛應用於各個領域。TI公司在1982年成功推出了其第一代DSP晶元TMS32010,這是DSP應用歷史上的一個里程碑,從此,DSP晶元開始得到真正的廣泛應用。由於TMS320系列DSP晶元具有價格低廉、簡單易用功能強大等特點,所以逐漸成為目前最有影響、最為成功的DSP系列處理器。
目前,TI公司在市場上主要有三大系列產品:
(1)面向數字控制、運動控制的TMS320C2000系列,主要包括 TMS320C24x/F24x、TMS320LC240x/LF240x、TMS320C24xA/LF240xA、TMS320C28xx等。
(2)面向低功耗、手持設備、無線終端應用的TMS320C5000系列,主要包括TMS320C54x, TMS320C54xx,TMS320C55x等。
(3)面向高性能、多功能、復雜應用領域的TMS320C6000系列,主要包括TMS320C62xx、TMS320C64xx、TMS320C67xx等。
美國模擬器件公司
ADI公司在DSP晶元市場上也佔有一定的份額,相繼推出了一系列具有自己特點的DSP晶元,其定點DSP晶元有ADSP2101/2103/2105、ADSP2111/2115、ADSP2126/2162/2164、ADSP2127/2181、ADSP-BF532以及Blackfin系列,浮點DSP晶元有ADSP21000/21020、ADSP21060/21062,以及虎鯊TS101、TS201S。
Motorola公司
Motorola公司推出的DSP晶元比較晚。1986年該公司推出了定點DSP處理器MC56001;1990年,又推出了與IEEE浮點格式兼容的的浮點DSP晶元MC96002。
還有DSP53611、16位DSP56800、24位的DSP563XX和MSC8101等產品。
傑爾公司
傑爾公司的SC-1000和SC2000兩大系列的嵌入式DSP內核,主要面向電信基礎設施、移動通信、多媒體伺服器及其它新興應用。
DSP晶元的選型參數
根據應用場合和設計目標的不同,選擇DSP晶元的側重點也各不相同,其主要參數包括以下幾個方面:
(1)運算速度:首先我們要確定數字信號處理的演算法,演算法確定以後其運算量和完成時間也就大體確定了,根據運算量.及其時間要求就可以估算DSP晶元運算速度的下限。在選擇DSP晶元時,各個晶元運算速度的衡量標准主要有:
?MIPS (Millions of InstructionsPer Second),百萬條指令/秒,一般DSP為20-100M IPS,使用超長指令字的TMS320B2XX為2400M IPS 。必須指出的是這是定點DSP晶元運算速度的衡量指標,應注意的是,廠家提供的該指標一般是指峰值指標,因此,系統設計時應留有一定的裕量。
?MOPS(Millions of OperationsPer Second),每秒執行百萬操作。這個指標的問題是什麼是一次操作,通常操作包括CPU操作外,還包括地址計算、DMA訪問數據傳輸、I/0操作等。一般說MOPS越高意味著乘積一累加和運算速度越快。MOPS可以對DSP晶元的性能進行綜合描述。
?MFLOPS(Million Floating PointOperations Per Second),百萬次浮點操作/秒,這是衡量浮點DSP晶元的重.要指標。例如TMS320C31在主頻為40MHz時,處理能力為40MFLOPS,TMS320C6701在指令周期為6ns時,單精度運算可達1GFLOPS .浮點操作包括浮點乘法、加法、減法、存儲等操作。應注意的是,廠家提供的該指標一般是指峰值指標,因此,系統設計時應注意留有一定的裕量。
?MBPS(Million Bit Per Second),它是對匯流排和I/0口數據吞吐率的度量,也就是某個匯流排或I/0的帶寬。例如對TMS320C6XXX, 200MHz時鍾、32bit匯流排時,匯流排數據吞吐率則為800Mbyte/s或6400MBPS。
?ACS(Multiply-AccumulatesPer Second),例如TMS320C6XXX乘加速度達300MMACS-600MMACS。
?指令周期,即執行一條指令所需的時間,通常以ns(納秒)為單位,如TMS320LC549-80在主頻為80MHz是的指令周期為12.5ns.
?MAC時間,執行一次乘法和加法運算所花費的時間:大多數DSP晶元可以在一個指令周期內完成一次MAC運算。
?FFT/FIR執行時間,運行一個N點FFT或N 點FIR程序的運算時間。由於FFT運算/FIR運算是數字信號處理的一個典型演算法,因此,該指標可以作為衡量晶元性能的綜合指標。
表1是基於上述某些參數對一些DSP晶元所作的比較。
(2)運算精度:一般情況下,浮點DSP晶元的運算精度要高於定點DSP晶元的運算精度,但是功耗和價格也隨之上升。一般定點DSP晶元的字長為16位、24位或者32位,浮點晶元的字長為32位。累加器一般都為32位或40位。定點DSP的特點是主頻高、速度快、成本低、功耗小,主要用於計算復雜度不高的控制、通信、語音/圖像、消費電子產品等領域。通常可以用定點器件解決的問題,盡量用定點器件,因為它經濟、速度快、成本低,功耗小。但是在編程時要關注信號的動態范圍,在代碼中增加限制信號動態范圍的定標運算,雖然我們可以通過改進演算法來提高運算精度,但是這樣做會相應增加程序的復雜度和運算量。浮點DSP的速度一般比定點DSP處理速度低,其成本和功耗都比定點DSP高,但是由於其採用了浮點數據格式,因而處理精度,動態范圍都遠高於定點DSP,適合於運算復雜度高,精度要求高的應用場合;即使是一般的應用,在對浮點DSP進行編程時,不必考慮數據溢出和精度不夠的問題,因而編程要比定點DSP方便、容易。因此說,運算精度要求是一個折衷的問題,需要根據經驗等來確定一個最佳的結合點。
(3)字長的選擇:一般浮點DSP晶元都用32位的數據字,大多數定點DSP晶元是16位數據字。而Motorola公司定點晶元用24位數據字,以便在定點和浮點精度之間取得折衷。字長大小是影響成本的重要因素,它影響晶元的大小、引腳數以及存儲器的大小,設計時在滿足性能指標的條件下,盡可能選用最小的數據字。
(4)存儲器等片內硬體資源安排:包括存儲器的大小,片內存儲器的數量,匯流排定址空間等。片內存儲器的大小決定了晶元運行速度和成本,例如TI公司同一系列的DSP晶元,不同種類晶元存儲器的配置等硬體資源各不相同。通過對演算法程序和應用目標的仔細分析可以大體判定對DSP晶元片內資源的要求。幾個重要的考慮因素是片內RAM和ROM的數量、可否外擴存儲器、匯流排介面/中斷/串列口等是否夠用、是否具有A/D轉換等。
(5)開發調試工具:完善、方便的的開發工具和相關支持軟體是開發大型、復雜DSP系統的必備條件,對縮短產品的開發周期有很重要的作用。開發工具包括軟體和硬體兩部分。軟體開發工具主要包括:C編譯器、匯編器、鏈接器、程序庫、軟體模擬器等,在確定DSP演算法後,編寫的程序代碼通過軟體模擬器進行模擬運行,來確定必要的性能指標。硬體開發工具包括在線硬體模擬器和系統開發板。在線硬體模擬器通常是JTAG周邊掃描介面板,可以對設計的硬體進行在線調試;在硬體系統完成之前,不同功能的開發板上實時運行設計的DSP軟體,可以提高開發效率。甚至在有的數量小的產品中,直接將開發板當作最終產品。
(6)功耗與電源管理:一般來說個人數字產品、便攜設備和戶外設備等對功耗有特殊要求,因此這也是一個該考慮的問題。它通常包括供電電壓的選擇和電源的管理功能。供電電壓一般取得比較低,實施晶元的低電壓供電,通常有3.3V,25V,I8V, 0.9V等,在同樣的時鍾頻率下,它們的功耗將遠遠低於5V供電電壓的晶元。加強了對電源的管理後,通常用休眠、等待模式等方式節省功率消耗。例如TI公司提供了詳細的、功能隨指令類型和處理器配置而改變的應用說明。
(7)價格及廠家的售後服務因素:價格包括DSP晶元的價格和開發.工具的價格。如果採用昂貴的DSP晶元,即使性能再高,其應用范圍也肯定受到一定的限制。但低價位的晶元必然是功能較少、片內存儲器少、性能上差一些的,這就帶給編程一定的困難。因此,要根據實際系統的應用情況,確定一個價格適中的DSP晶元。還要充分考慮廠家提供的的售後服務等因素,良好的售後技術支持也是開發過程中重要資源
(8)其他因素:包括DSP晶元的封裝形式、環境要求、供貨周期、生命周期等。
DSP應用選型型舉例
面向數字控制、運動控制的DSP系統開發的DSP晶元選型
面向數字控制、運動控制主.要有磁碟驅動控制、引擎控制、激光列印機控制、噴繪機控制、馬達控制、電力系統控制、機器人控制、高精度伺服系統控制、數控機床等。當然這些主要是針對數字運動控制系統設計的應用,在這些系統的控制中,不僅要求有專門用於數字控制系統的外設電路,而且要求晶元具有數字信號處理器的一般特徵。
例如在控制直流無刷電動機的DSP控制系統中,直流無刷電機運行過程要進行兩種控制,一種是轉速控制,也即控制提供給定子線圈的電流;另一種是換相控制,在轉子到達指定位置改變定子導通相,實現定子磁場改變,這種控制實際上實現了物理電刷的機制。因此這種電機需要有位置反饋機制,比如霍爾元件、光電碼盤,或者利用梯形反電動勢特點進行反電動勢過零檢測等。電機速度控制也是根據位置反饋信號,計算出轉子速度,再利用PI或PID等控制方法,實時調整PWM占空比等來實現定子電流調節。因此,控制晶元要進行較多的計算過程。當然也有專門的直流無刷電機控制晶元;但一般來說,在大多數應用中,除了電機控制,總還需要做一些其他的控制和通信等事情,所以,選用帶屍WIVI ,同時又有較強數學運算功能的晶元也是一種很好的選擇。
Motorola的數字信號處理器DSP568xx系列整合了通用數字信號
處理器快速運算功能和單片機外圍豐富的特點,使得該系列特別適合於那些要求有較強的數據處理能力,同時又要有較多控制功能的應用中,對直流無刷電機的控制就是這一系列DSP的典型應用之一。
除此之外,數字運動控領域還有TI公司的丁M S320C24x系列,TMS320Lx240xx系列,特別是TMS320LF2407A在控制方面得到了非常廣泛的應用,TMS320LF2407A作為一款專門面向數字控制系統進行優化的通用可編程微處理器,不僅具有低功耗和代碼保密的特點,而且它集成了極強的數字信號處理能力,又集成了數字控制系統所必需的輸入、輸出、A/D轉換、事件捕捉等外設,其時鍾頻率為40MHz,指令周期小於50ns,採用改進的哈佛結構和流水線技術,在一個指令周期內可以執行幾條指令。
從運行速度,精度角度來講上述兩款晶元相差無幾,但是TMS320LF2407A的調試開發環境CCCS)更加成熟,可參考的資料也更豐富,這樣無疑會減少開發周期。
面向低功耗、手持設備、無線終 端應用的DSP晶元選型
C54X, C54XX, C55X相比其它一系列的主要特點是低功耗,所以最適合個人與攜帶型上網以及無線通信應用,如手機、PDA、GPS等應用。處理速度在80---400M IPS之間。C54XX和C55XX一般只具有McBSP同步串口、HPI並行介面、定時器、DMA等外設。值得注意的是C55XX提供了EMIF外部存儲器擴展介面,可以直接使用SDRAM,而C54XX則不能直接使用。
『貳』 初學java什麼編譯器比較好啊
現在JAVA最流行的IDE應該算是Eclipse了,可以到http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.2.1-200609210945/eclipse-SDK-3.2.1-win32.zip下載eclipse3.2版本
另外還需要JDK可以到https://sdlc1b.sun.com/ECom/EComActionServlet;jsessionid=下載JDK1.4.2
『叄』 2020年前端最火的技術是什麼
我認為的2020年前端開發者最應該掌握的一些比較火爆的技術與知識點。
1,前端框架和語言層面
9月份 Vue3.0 發布,聲稱對 TypeScript 有著更好的開發體驗,通過從不同框架級別 TS 支持上,我們可以看出社區的整個風向從2019年的大家都去學習應用 TS,變成了大家如何把 TS 用的更好這個方向上來了。
所以我認為今年 TypeScript 的火熱程度還是應該排名很靠前的,我今年也使用 TypeScript 重構了 Daruk 的服務框架推出了2.0版本,讓 TS 開發者擁有更好的 TS 開發體驗。
接下來就是兩大重磅框架的更新歷程對比,Vue3 前面說了一句。而 React 也在十月也發布了 React 17 的 release 版本。這兩大主流框架的頻繁更新,也說明了社區和作者都在一同演化。
在 Vue 3中除了更好的支持 TS 外,還更新了Composition API。而 React 17 主要是集中精力在升級體驗上,雖然沒有新的 Feature 但是提升了和解決了很多之前版本潛在的問題。
要說哪個最火還是要看個人實際的使用場景和喜好,但是2020年來看還沒有別的框架可以與之一戰。
2019年前大家都瘋狂吐槽面試刷 medium 題目沒用,而2020年後大家開始默認面試某些公司都至少要刷到medium程度的題目。這對很多前端來說是一個心智和素質的提升與轉變,大家在接觸新技術的同時,也慢慢發現,前端整個職業環境的變化,越來越多的公司對人的整體綜合素質要求變高了。
『肆』 舞台燈光使用技巧
舞台燈光藝術是綜合藝術,有導演的編排,演員的表演,有美術、音樂、燈光、音響等各部門的創作,各個部門必須互相配合。舞檯布景、人物造型、環境氣氛等。在很大程度上要配合燈光加以展現,人物的內在思想感情也要藉助燈光加以延伸。燈光是觀眾的視覺所在,觀眾藉助燈光欣賞各種藝術節目;在舞台演出中由於充分運用光和色。從而突出了主題、展開了情節、刻劃了人物、烘託了氣氛。
劇場照明設計是否成功,是以舞台燈光的處理是否得當為標志。舞台燈光不僅要照亮演員,讓觀眾看清面部表情、神態和動作,更重要的是充分運用照明技術,調動燈光操作等手段來強化藝術效果,使觀眾有身臨其境之感。舞台燈光的安裝部位、功能及燈具配置舞台燈光按其使用功能主要分為兩種:可調光的調光迴路;不可調光的直放迴路。
舞台照明方式
a.一般照明:指頂光和伸出式舞台作為部分頂光的吊點燈環,以及葡萄架上、天橋上的照明。
b.重點照明:指面光、耳光、柱光、側光、腳光、流動光和伸出式舞台的低角度面光、內(外)側光、轉台流動光以及樂池內設置的供接樂譜燈的低壓插座。
c.裝飾照明:指天排光、地排光和舞台上使用的激光效果器、追光、流動音樂噴泉以及各式電腦燈。
舞台燈光控制系統結構模塊
人機界面模塊 人機界面模塊的功能主要是接收控制人員的控制指令,一般可以用簡單的工控面板實現。該模塊接收到指令以後不作指令的翻譯,直接通過RS485匯流排傳輸按鍵信息到主控機模塊。
主控機模塊 主控機是整個布光控制系統的核心部分,負責上層控制界面和底層硬體控制模塊的聯系。主控機在收到控制模塊發來的按鍵信息後經過翻譯, 形成二進制的控制的指令; 然後主控機依據收的指令和相關的控制模塊地址組成一幀完整的數據,並通過RS485匯流排傳輸到下行匯流排上,各底層控制模塊再按地址匹配獲取屬於自己的數據。
底層控制模塊 底層控制模塊是直接控制舞台燈光動作的硬體設備。由於舞台燈光的數目一般比較多,因此控制模塊的數量一般也在10~ 20之間, 所有的控制模塊都掛靠在同一匯流排上,相互之間獨立編程。當主控機向匯流排上發送數據時, 所有控制模塊都接收到數據信息,並根據幀結構所包含的地址信息解析出屬於自己的指令並執行之。
三大模塊相互間利用RS485匯流排通訊,以固定的波特率傳輸數據。舞台燈光控制系統控制模塊其主要的功能有2方面:一是和主控機的通訊, 接收來自上層的指令。二是根據指令控制硬體電路實現對燈光動作的控制。下面分別就這兩個模塊進行介紹。 舞台燈光接收通訊模塊
1.通訊方式選擇 由於控制信號相對簡單,這里採用的是串列通訊方式。這種方式運用起來比較方便, 對外圍器件要求不高, 半/全雙功方式可自由選擇。在非同步方法中最重要的是波特率的設置。太高, 會增加單片機的負擔,甚至不可實現;太低,會影響整個操作的響應速度。
2.傳輸標准選擇 目前各種傳輸標准很多,但各有優缺點。由於布光系統作於演播廳,各種音響,電器的干擾會很多,因此,所選的傳輸方式應是抗干擾比較強的。由此考慮,在通訊距離為幾十米到上千米時,選用RS485匯流排傳輸是比較理想的。485匯流排利用兩條傳輸線,採取平衡發送和差分接收,因此具有抑制共模干擾的能力,加上接收器具有高的靈敏度,能檢測低達200mV 的電壓, 因此可以大大增強傳輸時的抗干擾能力,傳輸信號在千米以外可得到恢復。 RS485匯流排使用方便,用一對雙絞線即可實現多站聯網構成分布式系統。它設備簡單,價格低廉,能進行長距離通信,故在工程項目中獲得了廣泛的應用。
3.收發器選擇及使用 在485匯流排上傳輸的是485電平,而單片機和主控微機只能識別TTL電平。這樣,在兩者間就必須有專用晶元設計轉換電路,這就是收發器。收發器的種類很多,可根據需要轉換不同的電平,在應用中,為減少通訊電路與其他電路間的干擾,必須要有隔離級。雖然可以直接使用較高檔的帶隔離級的485收發器,但從價格考慮,還是自行設計隔離電路更好。 這里運用光電耦合器件,單獨電源供給等手段實現隔離。在使用M ax483是要注意使能端的控制。收發器處於接收狀態只有在/RE =0, 並且可移植性,避免了不必要的重復工作。中的模塊功能管理層和硬體驅動和基本功能函數介面層同屬於Opentv中間件。模塊功能管理層是為方便編寫用戶應用程序,按照一定的中間件函數介面標准編寫的有關於音頻、視頻和頻道操作管理和控制的函數。 驅動與基本函數介面層是OpenTV 中間件的底層部分。這一層次的軟體編寫要根據具體的硬體驅動來進行相應的改動,目的是提供給模塊功能管理層統一的驅動介面函數。
4.操作系統和硬體驅動層 本系統所採用的操作系統是pSOS;硬體驅動層主要針對各硬體模塊,提供相應的驅動程序。主要的驅動包括:Kernel模塊,主要負責提供對進程的操作,諸如進程的創建和刪除等;介面模塊,包括I C介面操作控制,RS一232 串口通信,智能卡的控制等;音頻模塊;視頻模塊;OSD 模塊;解復用模塊;解碼模塊;Flash 驅動模塊;TUNER 驅動模塊。
最後一步是機頂盒系統的調試:本系統的軟體是在pSOS編譯器的基礎上編譯完成的。整個測試框圖如圖3所示。系統利用了一個TS 碼流發生器作為機頂盒的調試TS 源。
TS流通過QAM 調制器調制到信道中,QAM 信號送到機頂盒的前端進行QAM 解調, 再送入系統板中進行信源解碼。TS流也可以直接通過系統板中的介面送入以對信源解碼進行單獨調試。系統個人電腦的測試是在PC + WINDOWS2000平台上進行的。而系統運行軟體則在pSOS 實時操作系統環境下執行。
編譯好的可執行文件通過模擬RoM 從串口下裝到硬體平台上的RAM 中, 然後系統將從RAM 中的某一固定地址讀出並執行程序。由於本硬體平台沒有提供網口,所以pSOS 自帶的在線調試功能並不能實現,調試信息只能通過執行程序過程中的輸出信息得到。
『伍』 誰能幫助我這是什麼意思嗎MXL文件
編輯詞條 編程語言 計算機語言的種類非常的多,總的來說可以分成機器語言,匯編語言,高級語言三大類。
如果按語種分,可以分為英文符號語言和漢語符號語言兩類。(典型的如:易語言、易語言.飛揚)
電腦每做的一次動作,一個步驟,都是按照以經用計算機語言編好的程序來執行的,程序是計算機要執行的指令的集合,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發出命令。
計算機所能識別的語言只有機器語言,即由0和1構成的代碼。但通常人們編程時,不採用機器語言,因為它非常難於記憶和識別。
目前通用的編程語言有兩種形式:匯編語言和高級語言。
匯編語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。匯編程序通常由三部分組成:指令、偽指令和宏指令。匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作,例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。
高級語言是目前絕大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由於省略了很多細節,編程者也就不需要有太多的專業知識。
高級語言主要是相對於匯編語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,如目前流行的VB、VC、FoxPro、Delphi等,這些語言的語法、命令格式都各不相同。 像最簡單的編程語言PASCAL語言也屬於高級語言.
高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:
解釋類:執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序。
編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的,例如Visual C++、Visual Foxpro、Delphi等。
學習編程,從何入手
如果您想學習編程,卻又不知從何入手,那麼您不妨看看下面的幾種學習方案,可能會給您一些啟示吧!
==============================================
VB方案一 Basic語言 & Visual Basic
優點
(1)Basic 簡單易學,很容易上手。
(2)Visual Basic 提供了強大的可視化編程能力,可以讓你輕松地做出漂亮的程序。
(3)眾多的控制項讓編程變得象壘積木一樣簡單。
(4)Visual Basic 的全部漢化讓我們這些見了English就頭大的人喜不自禁。
缺點
(1)Visual Basic 不是真正的面向對象的開發文具。
(2)Visual Basic 的數據類型太少,而且不支持指針,這使得它的表達能力很有限。
(3)Visual Basic 不是真正的編譯型語言,它產生的最終代碼不是可執行的,是一種偽代碼。它需要一個動態鏈接庫去解釋執行,這使得Visual Basic 的編譯速度大大變慢。 (Visual Basic 5以及以前的版本產生的代碼是偽代碼,Visual Basic 6 編譯出來的代碼是真正的可執行代碼。)
綜述:方案一適合初涉編程的朋友,它對學習者的要求不高,幾乎每個人都可以在一個比較短的時間里學會vB編程,並用VB 做出自己的作品。對於那些把編程當做游戲的朋友來說,VB 是您最佳的選擇。
Basic/Visual Basic簡介
==============================================
Delphi方案二 Pascal語言 & Delphi
優點
(1)Pascal語言結構嚴謹,可以很好地培養一個人的編程思想。
(2)Delphi是一門真正的面向對象的開發工具,並且是完全的可視化。
(3)Delphi使用了真編譯,可以讓你的代碼編譯成為可執行的文件,而且編譯速度非常快。
(4)Delphi具有強大的資料庫開發能力,可以讓你輕松地開發資料庫。
缺點
Delphi幾乎可以說是完美的,只是Pascal語言的過於嚴謹讓人感覺有點煩。
綜述: 方案二比較適合那些具有一定編程基礎並且學過Pascal語言的朋友。
Pascal語言簡介
Delphi簡介
==============================================
方案三 C語言 & Visual C++
優點
(1)C語言靈活性好,效率高,可以接觸到軟體開發比較底層的東西。
(2)微軟的MFC庫博大精深,學會它可以讓隨心所欲地進行編程。
(3)VC是微軟製作的產品,與操作系統的結合更加緊密。
缺點
對使用者的要求比較高,既要具備豐富的C語言編程經驗,又要具有一定的WINDOWS編程基礎,它的過於專業使得一般的編程愛好者學習起來會有不小的困難。
綜述: VC是程序員用的東西。如果你是一個永不滿足的人,而且可以在編程上投入很大的精力和時間,那麼學習VC你一定不會後悔的。
C語言簡介
==============================================
C++方案四 C++語言 & C++ Builder
優點
(1)C++語言的優點全部得以繼承。
(2)完全的可視化。
(3)極強的兼容性,支持OWL、VCL和MFC三大類庫。
(4)編譯速度非常快。
缺點
由於推出的時間太短,關於它的各種資料還不太多。
綜述:我認為C++ Builder 是最好的編程工具。它既保持了C++語言編程的優點,又做到了完全的可視化。
C語言簡介
==============================================
方案五 sql語言 & Power Builder
對於一些傳統的數據開發人員來說,Foxpro系列也許讓他們感到更加熟悉。但是對於初學者來說,PowerBuilder也許是最好的資料庫開發工具。各種各樣的控制項,功能強大的PowerBuilder語言都會幫助你開發出自己的資料庫應用程序。
[NextPage]
JSP簡介
JAVA語言在Sun正式發布JSP(Java Server Pages)之後,這種新的Web應用開發技術很快引起了人們的關注。JSP為創建高度動態的Web應用提供了一個獨特的開發環境。按照 Sun 的說法,JSP能夠適應市場上包括Apache WebServer 、IIS4.0在內的85%的伺服器產品。
JSP與ASP的簡單比較
JSP與Microsoft的ASP技術非常相似。兩者都提供在HTML代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。在ASP或JSP環境下,HTML代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的HTML頁面只依賴於Web伺服器,而ASP和JSP頁面需要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被重新嵌入到HTML代碼中,然後一起發送給瀏覽器。ASP和JSP都是面向Web伺服器的技術,客戶端瀏覽器不需要任何附加的軟體支持。
ASP的編程語言是VBScript之類的腳本語言,JSP使用的是Java,這是兩者最明顯的區別。
此外,ASP與JSP還有一個更為本質的區別:兩種語言引擎用完全不同的方式處理頁面中嵌入的程序代碼。在ASP下,VBScript代碼被ASP引擎解釋執行;在JSP下,代碼被編譯成Servlet並由Java虛擬機執行,這種編譯操作僅在對JSP頁面的第一次請求時發生。
運行環境
執行 JSP 代碼需要在伺服器上安裝 JSP 引擎。此處我們使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。為便於學習,這個軟體包提供了大量可供修改的示例。安裝 JSWDK 之後,只需執行 startserver 命令即可啟動伺服器。在默認配置下伺服器在埠 8080 監聽,使用 http://localhost:8080 即可打開預設頁面。
在運行 JSP 示例頁面之前,請注意一下安裝 JSWDK 的目錄,特別是" work "子目錄下的內容。執行示例頁面時,可以在這里看到 JSP 頁面如何被轉換成 Java 源文件,然後又被編譯成 class 文件(即 Servlet )。 JSWDK 軟體包中的示例頁面分為兩類,它們或者是 JSP 文件,或者是包含一個表單的 HTML 文件,這些表單均由 JSP 代碼處理。與 ASP 一樣, JSP 中的 Java 代碼均在伺服器端執行。因此,在瀏覽器中使用"查看源文件"菜單是無法看到 JSP 源代碼的,只能看到結果 HTML 代碼。所有示例的源代碼均通過一個單獨的" examples "頁面提供。
Java Servlet是一種開發Web應用的理想構架。 JSP以Servlet技術為基礎,又在許多方面作了改進。JSP頁面看起來象普通HTML頁面,但它允許嵌入執行代碼,在這一點上,它和ASP技術非常相似。利用跨平台運行的JavaBean 組件,JSP為分離處理邏輯與顯示樣式提供了卓越的解決方案。JSP必將成為ASP技術的有力競爭者。
[NextPage]
SQL語言簡介
SQL全稱是「結構化查詢語言(Structured Query Language)」,最早的是IBM的聖約瑟研究實驗室為其關系資料庫管理系統SYSTEM R開發的一種查詢語言,它的前身是SQUARE語言。SQL語言結構簡潔,功能強大,簡單易學,所以自從IBM公司1981年推出以來,SQL語言,得到了廣泛的應用。如今無論是像Oracle ,Sybase,Informix,SQL server這些大型的資料庫管理系統,還是像Visual Foxporo,PowerBuilder這些微機上常用的資料庫開發系統,都支持SQL語言作為查詢語言。
Structured Query Language包含4個部分:
數據查詢語言DQL-Data Query Language SELECT
數據操縱語言DQL-Data Manipulation Language INSERT, UPDATE, DELETE
數據定義語言DQL-Data Definition Language CREATE, ALTER, DROP
數據控制語言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK
SQL的歷史
在70年代初,E.E.Codd首先提出了關系模型。70年代中期,IBM公司在研製 SYSTEM R關系資料庫管理系統中研製了SQL語言,最早的SQL語言(叫SEQUEL2)是在1976 年 11 月的IBM Journal of R&D上公布的。
1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS資料庫系統中也實現了SQL。
1986年10月,美國ANSI採用SQL作為關系資料庫管理系統的標准語言(ANSI X3. 135-1986),後為國際標准化組織(ISO)採納為國際標准。
1989年,美國ANSI採納在ANSI X3.135-1989報告中定義的關系資料庫管理系統的SQL標准語言,稱為ANSI SQL 89, 該標准替代ANSI X3.135-1986版本。該標准為下列組織所採納:
● 國際標准化組織(ISO),為ISO 9075-1989報告「Database Language SQL With Integrity Enhancement」
● 美國聯邦政府,發布在The Federal Information Processing Standard Publication(FIPS PUB)127
目前,所有主要的關系資料庫管理系統支持某些形式的SQL語言, 大部分資料庫打算遵守ANSI SQL89標准。
SQL的優點
SQL廣泛地被採用正說明了它的優點。它使全部用戶,包括應用程序員、DBA管理員和終端用戶受益匪淺。
(1) 非過程化語言
SQL是一個非過程化的語言,因為它一次處理一個記錄,對數據提供自動導航。SQL允許用戶在高層的數據結構上工作,而不對單個記錄進行操作,可操作記錄集。所有SQL 語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結果作為另一條SQL語句的輸入。 SQL不要求用戶指定對數據的存放方法。 這種特性使用戶更易集中精力於要得到的結果。所有SQL語句使用查詢優化器,它是RDBMS的一部分,由它決定對指定數據存取的最快速度的手段。查詢優化器知道存在什麼索引,哪兒使用合適,而用戶從不需要知道表是否有索引,表有什麼類型的索引。
(2) 統一的語言
SQL可用於所有用戶的DB活動模型,包括系統管理員、資料庫管理員、 應用程序員、決策支持系統人員及許多其它類型的終端用戶。基本的SQL 命令只需很少時間就能學會,最高級的命令在幾天內便可掌握。 SQL為許多任務提供了命令,包括:
● 查詢數據
● 在表中插入、修改和刪除記錄
● 建立、修改和刪除數據對象
● 控制對數據和數據對象的存取
● 保證資料庫一致性和完整性
以前的資料庫管理系統為上述各類操作提供單獨的語言,而SQL 將全部任務統一在一種語言中。
(3) 是所有關系資料庫的公共語言
由於所有主要的關系資料庫管理系統都支持SQL語言,用戶可將使用SQL的技能從一個RDBMS轉到另一個。所有用SQL編寫的程序都是可以移植的。
[NextPage]
Java語言簡介
一. Java的由來
當1995年SUN推出Java語言之後,全世界的目光都被這個神奇的語言所吸引。那麼Java到底有何神奇之處呢?
Java語言其實最是誕生於1991年,起初被稱為OAK語言,是SUN公司為一些消費性電子產品而設計的一個通用環境。他們最初的目的只是為了開發一種獨立於平台的軟體技術,而且在網路出現之前,OAK可以說是默默無聞,甚至差點夭折。但是,網路的出現改變了OAK的命運。
在Java出現以前。Internet上的信息內容都是一些乏味死板的HTML文檔。這對於那些迷戀於WEB瀏覽的人們來說簡直不可容忍。他們迫切希望能在WEN中看到一些互動式的內容,開發人員也極希望能夠在WEB上創建一類無需考慮軟硬體平台就可以執行的應用程序,當然這些程序還要有極大的安全保障。對於用戶的這種要求,傳統的編程語言顯得無能為力,面SUN的工程師敏銳地察覺到了這一點,從1994年起,他們開始將OAK技術應用於WEB上,並且開發出了HotJava的第一個版本。當SUN公司1995年正式以Java這個名字推出的時候,幾乎所有的WEB開發人員都想到:噢,這正是我想要的。於是Java成了一顆耀眼的明星,丑小鴨一下了變成了白天鵝。
二. Java的定義
Java是一種簡單的,面象對象的,分布式的,解釋的,健壯的安全的,結構的中立的,可移植的,性能很優異的多線程的,動態的語言。
Java的開發環境有不同的版本,如sun公司的Java Developers Kit, 簡稱 JDK。後來微軟公司推出了支持Java規范的Microsoft Visual J++ Java開發環境,簡稱 VJ++。
三. Java的特點
1. 平台無關性
平台無關性是指Java能運行於不同的平台。Java引進虛擬機 原理,並運行於虛擬機,實現不同平台的Java介面之間。使 用Java編寫的程序能在世界范圍內共享。Java的數據類型與 機器無關,Java虛擬機(Java Virtual Machine)是建立在 硬體和操作系統之上,實現Java二進制代碼的解釋執行功能, 提供於不同平台的介面的。
2. 安全性
Java的編程類似C++,學習過C++的讀者將很快掌握Java的精 髓。Java舍棄了C++的指針對存儲器地址的直接操作,程序 運行時,內存由操作系統分配,這樣可以避免病毒通過指 針侵入系統。Java對程序提供了安全管理器,防止程序的 非法訪問。
3. 面向對象
Java 吸取了C++面向對象的概念,將數據封裝於類中,利用類 的優點,實現了程序的簡潔性和便於維護性。類的封裝性、 繼承性等有關對象的特性,使程序代碼只需一次編譯,然後 通過上述特性反復利用。程序員只需把主要精力用在類和接 口的設計和應用上。Java 提供了眾多的一般對象的類,通 過繼承即可使用父類的方法。在 Java 中,類的繼承關系是單一的非多重的,一個子類 只有一個父類,子類的父類又有一個父類。Java 提供的 Object 類及其子類的繼承關系如同一棵倒立的樹形,根類 為 Object 類, Object 類功能強大,經常會使用到它及其 它派生的子類。
4. 分布式
Java建立在擴展TCP/IP網路平台上。庫函數提供了用HTTP和FTP協議傳送和接受信息的方法。這使得程序員使用網路上的文件和使用本機文件一樣容易。
5. 鍵壯性
Java致力於檢查程序在編譯和運行時的錯誤。類型檢查幫助檢查出許多開發早期出現的錯誤。Java自己操縱內存減少了內存出錯的可能性。Java還實現了真數組,避免了覆蓋數據的可能。這些功能特徵大大提高了開發Java應用程序的周期。Java提供: Null指針檢測、 數組邊界檢測、 異常出口、 Byte code校驗。
四. Java與C/C++語言
Java提供了一個功能強大語言的所有功能,但幾乎沒有一點含混特徵。C++安全性不好,但C和C++被大家接受,所以Java設計成C++形式,讓大家很容易學習。
Java去掉了C++語言的許多功能,讓Java的語言功能很精煉,並增加了一些很有用的功能,如自動收集碎片。
Java去掉了以下幾個C和C++功能:
指針運算
結構
typedefs
#define
需要釋放內存
這將減少了平常出錯的50%。而且,Java很小,整個解釋器只需215K的RAM。
面象對象:Java實現了C++的基本面象對象技術並有一些增強,(為了語言簡單,刪除了一些功能)。Java處理數據方式和用對象介面處理對象數據方式一樣。
五. Java與Internet
我們知道,早先的 www 僅可以傳送文本和圖片,Java的出現實現了互動的頁面,是一次偉大的革命。
Java並不是為 Internet,WWW而設計的,它也可以用來編寫獨立的應用程序。Java 是一種面向對象語言。Java 語言類似於 C++ 語言,所以已熟練掌握 C++語言的編程人員,再學習 Java 語言就容易得多!Java 程序需要編譯。實際上有兩種 Java 程序:一種 Java 應用程序是一個完整的程序,如 Web 瀏覽器。一種 Java 小應用程序是運行於 Web 瀏覽器中的一個程序.
Java程序和它的瀏覽器HotJava,提供了可讓你的瀏覽器運行程序的方法。你能從你的瀏覽器里直接播放聲音。你還能播放頁面里的動畫。Java還能告訴你的瀏覽器怎樣處理新的類型文件。當我們能在2400 baud線上傳輸視頻圖象時,HotJava將能顯示這些視頻。
當今Internet的一大發展趨勢是電子商務,而Internet的安全問題是必須解決的問題,通常大的部門應設置防火牆,阻止非法侵入。
電子商務是當今的熱門話題,然而傳統的編程語言難以勝任電子商務系統,電子商務要求程序代碼具有基本的要求:安全、可靠、同時要求能 與運行於不同平台的機器的全世界客戶開展業務。Java以其強安全性、平台無關性、硬體結構無關性、語言簡潔同時面向對象,在網路編程語言中占據無可比擬的優勢,成為實現電子商務系統的首選語言。
Java程序被放置在Internet伺服器上,當用戶訪問伺服器時,Java程序被下載到本地的用戶機上,由瀏覽器解釋運行。
[NextPage]
PowerBuilder簡介
PowerBuilder的產生
PowerBuilder是美國著名的資料庫應用開發工具生產廠商PowerSoft推出的成功產品,其第一版於1991年6月正式投入市場。它是完全按照客戶/伺服器體系結構研製設計的,採用面向對象技術,圖形化的應用開發環境,是資料庫的前端開發工具。
PowerBuilder的特點
它支持應用系統同時訪問多種資料庫,其中既包括Oracle,Sybase之類的大型資料庫,又包括FOXPRO之類支持ODBC介面的小型資料庫,PowerBuilder是完全可視化的資料庫開發工具,它提供了大量的控制項,大大加快了項目的開發速度,也使開發者更容易掌握資料庫的開發。
它使用的編程語言叫做工PowerScripr,它也是一種高級的,結構化的編程語言。PowerScript提供了一套完整的嵌入式SQL語句,開發人員可以像使用其它語句一樣自由地使用SQL語言,這樣就大大增強了程序操縱和訪問資料庫的能力。可以說PowerBuilder既適合初學者快速學習資料庫的開發,又可以讓有經驗的開發人員開發出功能強大的資料庫,是一種適用面非常廣的開發工具。
PowerBuilder是一個用來進行客戶/伺服器開發的完全的可視化開發環境。使用PowerBuilder,你可以用一種可視的直觀的方式來創建應用程序的用戶界面和資料庫介面。這是一個總的概念,實際上是開發人員使用PowerBuilder去開發應用程序,由於所開發的各種應用程序充分利用了圖形用戶介面(GUI)的優點,所以PowerBuilder被認為是一個圖形工具。
在客戶/伺服器結構的應用中,PowerBuilder具有描述多個資料庫連接與檢索的能力。特別是PowerBuilder能從大多數流行的RDBMS中存取數據,且不管數據存放在什麼地方;另外,各種應用程序又可以獨立於RDBMS,因為PowerBuilder可以使用資料庫的標准操作語言SQL(結構化查詢語言)進行。
使用PowerBuilder,可以很容易地開發出功能強大的圖形界面的訪問伺服器資料庫的應用程序,PowerBuilder提供了建立符合工業標準的應用程序(例如訂單登記、會計及製造系統)所需的所有工具。
PowerBuilder應用程序由窗口組成,這些窗口包含用戶與之交互的控制項。開發人員可以使用所有標准空間(如按鈕、復選框、下拉式列表框或編輯框)以及PowerBuilder提供的特殊的使應用程序更易於開發和使用的控制項。
通常人們把PowerBuilder看成是一種開發工具,實際上它比其他工具強得多,是一種強有力的開發環境。開發人員不僅能用它來開發用戶容易使用的各種應用程序還可以通過PowerBuilder修改資料庫,利用400多個內部定義函數,可以開發能和其他應用程序進行的各種應用程序。
PowerBuilder正在成為客戶/伺服器應用開發的標准。相對於其他任何客戶/伺服器開發環境,PowerBuilder使開發人員的工作更快、成本更低、質量更高、功能更強。
PowerBuilder為應用開發提供了全面綜合性的支持,可以分別概括為如下幾點:
事件驅動的應用程序
功能強大的編程語言與函數
面向對象的編程
跨平台開發
開放的資料庫連結系統
PowerBuilder開發環境
PowerBuilder開發環境由一系列集成的圖形畫板(Painter)組成,應用開發人員通過簡單的滑鼠操作即可設計、建立、交互檢驗和測試客戶/伺服器應用程序。
[NextPage]
Delphi簡介
Delphi這個名字源於古希臘的城市名。它集中了第三代語言
『陸』 如何分析為什麼oracle速度慢
Oracle查詢速度慢的原因總結
查詢速度慢的原因很多,常見如下幾種:
1,沒有索引或者沒有用到索引(這是查詢慢最常見的問題,是程序設計的缺陷)
2,I/O吞吐量小,形成了瓶頸效應.
3,沒有創建計算列導致查詢不優化.
4,內存不足
5,網路速度慢
6,查詢出的數據量過大(可以採用多次查詢,其他的方法降低數據量)
7,鎖或者死鎖(這也是查詢慢最常見的問題,是程序設計的缺陷)
8,sp_lock,sp_who,活動的用戶查看,原因是讀寫競爭資源.
9,返回了不必要的行和列
10,查詢語句不好,沒有優化
可以通過如下方法來優化查詢 :
1,把數據,日誌,索引放到不同的I/O設備上,增加讀取速度,以前可以將Tempdb應放在RAID0上,SQL2000不在支持.數據量(尺寸)越大,提高I/O越重要.
2,縱向,橫向分割表,減少表的尺寸(sp_spaceuse)
3,升級硬體
4,根據查詢條件,建立索引,優化索引,優化訪問方式,限制結果集的數據量.注意填充因子要適當(最好是使用默認值0).索引應該盡量小,使用位元組數小的列建索引好(參照索引的創建),不要對有限的幾個值的欄位建單一索引如性別欄位
5,提高網速;
6,擴大伺服器的內存,Windows 2000和SQL server 2000能支持4-8G的內存.配置虛擬內存:虛擬內存大小應基於計算機上並發運行的服務進行配置.運行 Microsoft SQL Server? 2000 時,可考慮將虛擬內存大小設置為計算機中安裝的物理內存的 1.5 倍.如果另外安裝了全文檢索功能,並打算運行 Microsoft 搜索服務以便執行全文索引和查詢,可考慮:將虛擬內存大小配置為至少是計算機中安裝的物理內存的 3 倍.將 SQL Server max server memory 伺服器配置選項配置為物理內存的 1.5 倍(虛擬內存大小設置的一半).
7,增加伺服器 CPU個數;但是必須明白並行處理串列處理更需要資源例如內存.使用並行還是串列程是MsSQL自動評估選擇的.單個任務分解成多個任務,就可以在處理器上運行.例如耽擱查詢的排序,連接,掃描和GROUP BY字句同時執行,SQL SERVER根據系統的負載情況決定最優的並行等級,復雜的需要消耗大量的CPU的查詢最適合並行處理.但是更新操作Update,Insert, Delete還不能並行處理.
8,如果是使用like進行查詢的話,簡單的使用index是不行的,但是全文索引,耗空間. like 'a%' 使用索引 like '%a' 不使用索引用 like '%a%' 查詢時,查詢耗時和欄位值總長度成正比,所以不能用CHAR類型,而是VARCHAR.對於欄位的值很長的建全文索引.
9,DB Server 和APPLication Server 分離;OLTP和OLAP分離
10,分布式分區視圖可用於實現資料庫伺服器聯合體.聯合體是一組分開管理的伺服器,但它們相互協作分擔系統的處理負荷.這種通過分區數據形成資料庫伺服器聯合體的機制能夠擴大一組伺服器,以支持大型的多層 Web 站點的處理需要.有關更多信息,參見設計聯合資料庫伺服器.(參照SQL幫助文件'分區視圖')
a,在實現分區視圖之前,必須先水平分區表
b,在創建成員表後,在每個成員伺服器上定義一個分布式分區視圖,並且每個視圖具有相同的名稱.這樣,引用分布式分區視圖名的查詢可以在任何一個成員伺服器上運行.系統操作如同每個成員伺服器上都有一個原始表的復本一樣,但其實每個伺服器上只有一個成員表和一個分布式分區視圖.數據的位置對應用程序是透明的.
11,重建索引 DBCC REINDEX ,DBCC INDEXDEFRAG,收縮數據和日誌 DBCC SHRINKDB,DBCC SHRINKFILE. 設置自動收縮日誌.對於大的資料庫不要設置資料庫自動增長,它會降低伺服器的性能.在T-sql的寫法上有很大的講究,下面列出常見的要點:首先, DBMS處理查詢計劃的過程是這樣的:
1, 查詢語句的詞法,語法檢查
2, 將語句提交給DBMS的查詢優化器
3, 優化器做代數優化和存取路徑的優化
4, 由預編譯模塊生成查詢規劃
5, 然後在合適的時間提交給系統處理執行
6, 最後將執行結果返回給用戶其次,看一下SQL SERVER的數據存放的結構:一個頁面的大小為8K(8060)位元組,8個頁面為一個盤區,按照B樹存放.
12,Commit和rollback的區別 Rollback:回滾所有的事物. Commit:提交當前的事物. 沒有必要在動態SQL里寫事物,如果要寫請寫在外面如: begin tran exec(@s) commit trans 或者將動態SQL 寫成函數或者存儲過程.
13,在查詢Select語句中用Where字句限制返回的行數,避免表掃描,如果返回不必要的數據,浪費了伺服器的I/O資源,加重了網路的負擔降低性能.如果表很大,在表掃描的期間將表鎖住,禁止其他的聯接訪問表,後果嚴重.
14,SQL的注釋申明對執行沒有任何影響15,盡可能不使用游標,它佔用大量的資源.如果需要row-by-row地執行,盡量採用非游標技術,如:在客戶端循環,用臨時表,Table變數,用子查詢,用Case語句等等.游標可以按照它所支持的提取選項進行分類: 只進 必須按照從第一行到最後一行的順序提取行.FETCH NEXT 是唯一允許的提取操作,也是默認方式.可滾動性可以在游標中任何地方隨機提取任意行.游標的技術在SQL2000下變得功能很強大,他的目的是支持循環.有四個並發選項 READ_ONLY:不允許通過游標定位更新(Update),且在組成結果集的行中沒有鎖. OPTIMISTIC WITH valueS:樂觀並發控制是事務控制理論的一個標准部分.樂觀並發控制用於這樣的情形,即在打開游標及更新行的間隔中,只有很小的機會讓第二個用戶更新某一行.當某個游標以此選項打開時,沒有鎖控制其中的行,這將有助於最大化其處理能力.如果用戶試圖修改某一行,則此行的當前值會與最後一次提取此行時獲取的值進行比較.如果任何值發生改變,則伺服器就會知道其他人已更新了此行,並會返回一個錯誤.如果值是一樣的,伺服器就執行修改.選擇這個並發選項OPTIMISTIC WITH ROW VERSIONING:此樂觀並發控制選項基於行版本控制.使用行版本控制,其中的表必須具有某種版本標識符,伺服器可用它來確定該行在讀入游標後是否有所更改.在 SQL Server 中,這個性能由 timestamp 數據類型提供,它是一個二進制數字,表示資料庫中更改的相對順序.每個資料庫都有一個全局當前時間戳值:@@DBTS.每次以任何方式更改帶有 timestamp 列的行時,SQL Server 先在時間戳列中存儲當前的 @@DBTS 值,然後增加 @@DBTS 的值.如果某 個表具有 timestamp 列,則時間戳會被記到行級.伺服器就可以比較某行的當前時間戳值和上次提取時所存儲的時間戳值,從而確定該行是否已更新.伺服器不必比較所有列的值,只需比較 timestamp 列即可.如果應用程序對沒有 timestamp 列的表要求基於行版本控制的樂觀並發,則游標默認為基於數值的樂觀並發控制. SCROLL LOCKS 這個選項實現悲觀並發控制.在悲觀並發控制中,在把資料庫的行讀入游標結果集時,應用程序將試圖鎖定資料庫行.在使用伺服器游標時,將行讀入游標時會在其上放置一個更新鎖.如果在事務內打開游標,則該事務更新鎖將一直保持到事務被提交或回滾;當提取下一行時,將除去游標鎖.如果在事務外打開游標,則提取下一行時,鎖就被丟棄.因此,每當用戶需要完全的悲觀並發控制時,游標都應在事務內打開.更新鎖將阻止任何其它任務獲取更新鎖或排它鎖,從而阻止其它任務更新該行.然而,更新鎖並不阻止共享鎖,所以它不會阻止其它任務讀取行,除非第二個任務也在要求帶更新鎖的讀取.滾動鎖根據在游標定義的 Select 語句中指定的鎖提示,這些游標並發選項可以生成滾動鎖.滾動鎖在提取時在每行上獲取,並保持到下次提取或者游標關閉,以先發生者為准.下次提取時,伺服器為新提取中的行獲取滾動鎖,並釋放上次提取中行的滾動鎖.滾動鎖獨立於事務鎖,並可以保持到一個提交或回滾操作之後.如果提交時關閉游標的選項為關,則 COMMIT 語句並不關閉任何打開的游標,而且滾動鎖被保留到提交之後,以維護對所提取數據的隔離.所獲取滾動鎖的類型取決於游標並發選項和游標 Select 語句中的鎖提示.鎖提示 只讀 樂觀數值 樂觀行版本控制 鎖定無提示 未鎖定 未鎖定 未鎖定 更新 NOLOCK 未鎖定未鎖定未鎖定 未鎖定 HOLDLOCK 共享 共享 共享 更新 UPDLOCK 錯誤 更新 更新 更新 TABLOCKX 錯誤 未鎖定未鎖定更新其它 未鎖定 未鎖定 未鎖定 更新 *指定 NOLOCK 提示將使指定了該提示的表在游標內是只讀的.
16,用Profiler來跟蹤查詢,得到查詢所需的時間,找出SQL的問題所在;用索引優化器優化索引
17,注意UNion和UNion all 的區別.UNION all好
18,注意使用DISTINCT,在沒有必要時不要用,它同UNION一樣會使查詢變慢.重復的記錄在查詢里是沒有問題的
19,查詢時不要返回不需要的行,列
20,用sp_configure 'query governor cost limit'或者SET QUERY_GOVERNOR_COST_LIMIT來限制查詢消耗的資源.當評估查詢消耗的資源超出限制時,伺服器自動取消查詢,在查詢之前就扼殺掉. SET LOCKTIME設置鎖的時間.
21,用select top 100 / 10 Percent 來限制用戶返回的行數或者SET ROWCOUNT來限制操作的行
22,在SQL2000以前,一般不要用如下的字句: "IS NULL", "<>", "!=", "!>", "!<", "NOT", "NOT EXISTS", "NOT IN", "NOT LIKE", and "LIKE '%500'",因為他們不走索引全是表掃描.也不要在Where字句中的列名加函數,如Convert,substring等,如果必須用函數的時候,創建計算列再創建索引來替代.還可以變通寫法:Where SUBSTRING(firstname,1,1) = 'm'改為Where firstname like 'm%'(索引掃描),一定要將函數和列名分開.並且索引不能建得太多和太大.NOT IN會多次掃描表,使用EXISTS,NOT EXISTS ,IN , LEFT OUTER JOIN 來替代,特別是左連接,而Exists比IN更快,最慢的是NOT操作.如果列的值含有空,以前它的索引不起作用,現在2000的優化器能夠處理了.相同的是IS NULL,"NOT", "NOT EXISTS", "NOT IN"能優化她,而"<>"等還是不能優化,用不到索引.
23,使用Query Analyzer,查看SQL語句的查詢計劃和評估分析是否是優化的SQL.一般的20%的代碼占據了80%的資源,我們優化的重點是這些慢的地方.
24,如果使用了IN或者OR等時發現查詢沒有走索引,使用顯示申明指定索引: Select * FROM PersonMember (INDEX = IX_Title) Where processid IN ('男','女')
25,將需要查詢的結果預先計算好放在表中,查詢的時候再Select.這在SQL7.0以前是最重要的手段.例如醫院的住院費計算.
26,MIN() 和 MAX()能使用到合適的索引.
27,資料庫有一個原則是代碼離數據越近越好,所以優先選擇Default,依次為Rules,Triggers, Constraint(約束如外健主健CheckUNIQUE……,數據類型的最大長度等等都是約束),Procere.這樣不僅維護工作小,編寫程序質量高,並且執行的速度快.
28,如果要插入大的二進制值到Image列,使用存儲過程,千萬不要用內嵌Insert來插入 (不知JAVA是否).因為這樣應用程序首先將二進制值轉換成字元串(尺寸是它的兩倍),伺服器受到字元後又將他轉換成二進制值.存儲過程就沒有這些動作: 方法:Create procere p_insert as insert into table(Fimage) values (@image), 在前台調用這個存儲過程傳入二進制參數,這樣處理速度明顯改善.
29,Between在某些時候比IN 速度更快,Between能夠更快地根據索引找到范圍.用查詢優化器可見到差別. select * from chineseresume where title in ('男','女') Select * from chineseresume where between '男' and '女' 是一樣的.由於in會在比較多次,所以有時會慢些.
30,在必要是對全局或者局部臨時表創建索引,有時能夠提高速度,但不是一定會這樣,因為索引也耗費大量的資源.他的創建同是實際表一樣.
31,不要建沒有作用的事物例如產生報表時,浪費資源.只有在必要使用事物時使用它.
32,用OR的字句可以分解成多個查詢,並且通過UNION 連接多個查詢.他們的速度只同是否使用索引有關,如果查詢需要用到聯合索引,用UNION all執行的效率更高.多個OR的字句沒有用到索引,改寫成UNION的形式再試圖與索引匹配.一個關鍵的問題是否用到索引.
33,盡量少用視圖,它的效率低.對視圖操作比直接對表操作慢,可以用stored procere來代替她.特別的是不要用視圖嵌套,嵌套視圖增加了尋找原始資料的難度.我們看視圖的本質:它是存放在伺服器上的被優化好了的已經產生了查詢規劃的SQL.對單個表檢索數據時,不要使用指向多個表的視圖,直接從表檢索或者僅僅包含這個表的視圖上讀,否則增加了不必要的開銷,查詢受到干擾.為了加快視圖的查詢,MsSQL增加了視圖索引的功能.
34,沒有必要時不要用DISTINCT和ORDER BY,這些動作可以改在客戶端執行.它們增加了額外的開銷.這同UNION 和UNION ALL一樣的道理.
select top 20 ad.companyname,comid,position,ad.referenceid,worklocation, convert(varchar(10),ad.postDate,120) as postDate1,workyear,degreedescription FROM jobcn_query.dbo.COMPANYAD_query ad where referenceID in('JCNAD00329667','JCNAD132168','JCNAD00337748','JCNAD00338345','JCNAD00333138','JCNAD00303570','JCNAD00303569','JCNAD00303568','JCNAD00306698',
'JCNAD00231935','JCNAD00231933','JCNAD00254567','JCNAD00254585','JCNAD00254608','JCNAD00254607','JCNAD00258524',
'JCNAD00332133','JCNAD00268618','JCNAD00279196','JCNAD00268613') order by postdate desc
35,在IN後面值的列表中,將出現最頻繁的值放在最前面,出現得最少的放在最後面,減少判斷的次數.
36,當用Select INTO時,它會鎖住系統表(sysobjects,sysindexes等等),阻塞其他的連接的存取.創建臨時表時用顯示申明語句,而不是 select INTO. drop table t_lxh begin tran select * into t_lxh from chineseresume where ——commit 在另一個連接中Select * from sysobjects可以看到 Select INTO 會鎖住系統表,Create table 也會鎖系統表(不管是臨時表還是系統表).所以千萬不要在事物內使用它!!!這樣的話如果是經常要用的臨時表請使用實表,或者臨時表變數.
37,一般在GROUP BY 個HAVING字句之前就能剔除多餘的行,所以盡量不要用它們來做剔除行的工作.他們的執行順序應該如下最優:select 的Where字句選擇所有合適的行,Group By用來分組個統計行,Having字句用來剔除多餘的分組.這樣Group By 個Having的開銷小,查詢快.對於大的數據行進行分組和Having十分消耗資源.如果Group BY的目的不包括計算,只是分組,那麼用Distinct更快
38,一次更新多條記錄比分多次更新每次一條快,就是說批處理好
39,少用臨時表,盡量用結果集和Table類性的變數來代替它,Table 類型的變數比臨時表好
40,在SQL2000下,計算欄位是可以索引的,需要滿足的條件如下:
a,計算欄位的表達是確定的
b,不能用在TEXT,Ntext,Image數據類型
c,必須配製如下選項 ANSI_NULLS = ON, ANSI_PADDINGS = ON, …….
41,盡量將數據的處理工作放在伺服器上,減少網路的開銷,如使用存儲過程.存儲過程是編譯好,優化過,並且被組織到一個執行規劃里,且存儲在資料庫中的SQL語句,是控制流語言的集合,速度當然快.反復執行的動態SQL,可以使用臨時存儲過程,該過程(臨時表)被放在Tempdb中.以前由於SQL SERVER對復雜的數學計算不支持,所以不得不將這個工作放在其他的層上而增加網路的開銷.SQL2000支持UDFs,現在支持復雜的數學計算,函數的返回值不要太大,這樣的開銷很大.用戶自定義函數象游標一樣執行的消耗大量的資源,如果返回大的結果採用存儲過程
42,不要在一句話里再三的使用相同的函數,浪費資源,將結果放在變數里再調用更快
43,Select COUNT(*)的效率教低,盡量變通他的寫法,而EXISTS快.同時請注意區別: select count(Field of null) from Table 和 select count(Field of NOT null) from Table 的返回值是不同的!!!
44,當伺服器的內存夠多時,配製線程數量 = 最大連接數+5,這樣能發揮最大的效率;否則使用 配製線程數量<最大連接數啟用SQL SERVER的線程池來解決,如果還是數量 = 最大連接數+5,嚴重的損害伺服器的性能.
45,按照一定的次序來訪問你的表.如果你先鎖住表A,再鎖住表B,那麼在所有的存儲過程中都要按照這個順序來鎖定它們.如果你(不經意的)某個存儲過程中先鎖定表B,再鎖定表A,這可能就會導致一個死鎖.如果鎖定順序沒有被預先詳細的設計好,死鎖很難被發現
46,通過SQL Server Performance Monitor監視相應硬體的負載 Memory: Page Faults / sec計數器如果該值偶爾走高,表明當時有線程競爭內存.如果持續很高,則內存可能是瓶頸.
Process:
1,% DPC Time 指在範例間隔期間處理器用在緩延程序調用(DPC)接收和提供服務的百分比.(DPC 正在運行的為比標准間隔優先權低的間隔). 由於 DPC 是以特權模式執行的,DPC 時間的百分比為特權時間百分比的一部分.這些時間單獨計算並且不屬於間隔計算總數的一部 分.這個總數顯示了作為實例時間百分比的平均忙時.
2,%Processor Time計數器如果該參數值持續超過95%,表明瓶頸是CPU.可以考慮增加一個處理器或換一個更快的處理器.
3,% Privileged Time 指非閑置處理器時間用於特權模式的百分比.(特權模式是為操作系統組件和操縱硬體驅動程序而設計的一種處理模式.它允許直接訪問硬體和所有內存.另一種模式為用戶模式,它是一種為應用程序,環境分系統和整數分系統設計的一種有限處理模式.操作系統將應用程序線程轉換成特權模式以訪問操作系統服務).特權時間的 % 包括為間斷和 DPC 提供服務的時間.特權時間比率高可能是由於失敗設備產生的大數量的間隔而引起的.這個計數器將平均忙時作為樣本時間的一部分顯示.
4,% User Time表示耗費CPU的資料庫操作,如排序,執行aggregate functions等.如果該值很高,可考慮增加索引,盡量使用簡單的表聯接,水平分割大表格等方法來降低該值. Physical Disk: Curretn Disk Queue Length計數器該值應不超過磁碟數的1.5~2倍.要提高性能,可增加磁碟. SQLServer:Cache Hit Ratio計數器該值越高越好.如果持續低於80%,應考慮增加內存. 注意該參數值是從SQL Server啟動後,就一直累加記數,所以運行經過一段時間後,該值將不能反映系統當前值.
47,分析select emp_name form employee where salary > 3000 在此語句中若salary是Float類型的,則優化器對其進行優化為Convert(float,3000),因為3000是個整數,我們應在編程時使用3000.0而不要等運行時讓DBMS進行轉化.同樣字元和整型數據的轉換.
48,查詢的關聯同寫的順序
select a.personMemberID, * from chineseresume a,personmember b where personMemberID = b.referenceid and a.personMemberID = 'JCNPRH39681' (A = B ,B = '號碼')
select a.personMemberID, * from chineseresume a,personmember b where a.personMemberID = b.referenceid and a.personMemberID = 'JCNPRH39681' and b.referenceid = 'JCNPRH39681' (A = B ,B = '號碼', A = '號碼')
select a.personMemberID, * from chineseresume a,personmember b where b.referenceid = 'JCNPRH39681' and a.personMemberID = 'JCNPRH39681' (B = '號碼', A = '號碼')
『柒』 TS格式的視頻文件怎麼轉換成mp4文件。
1、首先你要安裝好一款用於ts格式轉換的轉換器軟體(視頻轉換器不收費),然後用ts格式視頻添加到軟體中去,圖下為例:
(7)ts編譯速度擴展閱讀:
ts是日本高清攝像機拍攝下進行的封裝格式,全稱為MPEG2-TS。ts即"Transport Stream"的縮寫。MPEG2-TS格式的特點就是要求從視頻流的任一片段開始都是可以獨立解碼的。
ts格式轉換器,也就是將ts這種格式進行編碼或解碼的格式轉換器,ts格式是一種新興的高清封裝格式,對ts格式解碼,即將ts格式解碼再編碼成其他格式,國內常用的ts格式轉換器狸窩全能視頻轉換器常見的轉換模式有:ts轉rmvb,ts轉mp4、ts轉avi、ts轉wmv;對ts格式編碼,即指將其他格式轉換成ts格式。
『捌』 大前端和前端不一樣嗎有什麼區別啊
簡單來說,大前端就是所有前端的統稱,比如Android、iOS、web、Watch等,最接近用戶的那一層也就是UI層,然後將其統一起來,就是大前端。大前端最大的特點在於一次開發,同時適用於所有平台,開發者不用為一個APP需要做Android和iOS兩種模式而擔心。大前端是web統一的時代,利用web不僅能開發出網站,更可以開發手機端web應用和移動端應用程序。
為什麼出現大前端的概念?
由於node的出現,前端工程師不需要依賴於後端程序而直接運行,從而前後端分離起來。所以當開發一個新產品的時候服務只需要寫一次,但是面向用戶的產品可能有很多,例如網站、Android客戶端、iOS客戶端和微信小程序等。由於各個平台使用的技術棧都不一樣,代碼無法復用,非常浪費人力、物力。那麼有沒有什麼技術能前端要學好必須每天堅持學習。為了方便大家的交流學習,也是創建了一個群每天都有分享學習方法和專業老師直播前端課程,這個扣裙首先是132 中間是667 最後是127 前端學習零基礎想要學習的同學歡迎加入,如果只是湊熱鬧就不要來了!!!夠解決這一痛點呢?大前端應運而生,其實大前端的主要核心就是跨平台技術,有了跨平台技術,各個平台的差異性就抹平了,開發者只需要一套技術棧就可以開發出適用於多個平台的客戶端。
現在的前端都需要有多重開發技能,隨著微信公眾號、小程序的火熱發展,這兩個領域成為了前端開發的必備技能,更多的還有配合著打包技術的混合應用開發技術、一些桌面APP、甚至有些人認為基於node.js的後台開發都屬於大前端的范圍。
大前端的發展趨勢
大前端不僅會成為移動開發與Web前端的發展趨勢,也將會是未來的顯示設備終端的開發技術趨勢。大前端將做更多的終端開發、工程化等工作,而不僅僅只是開發Web頁面。大前端工程師將能搞定所有端上的開發。與充滿爭議的全棧工程師相比,它更具可操作性。
但同時對開發者而言,要會更多的技術棧,比如原生開發者要學習html、css、js等前端知識,前端開發人員也要學習Android或iOS的原生開發技術,然後了解一下常見的跨平台技術,只有這樣才能更好的融入到大前端的這個大家庭中。