国产在线精品一级A片-国产另类欧美-国产精品va在线观看一-我要找美国一级片黄色|www.zheinei.com

數據庫面試題

時間:2022-11-23 19:39:50 面試技巧 我要投稿

數據庫面試題

  參加數據庫面試中,面試題目對面試者來說很重要,那么你知道哪些面試題目呢?以下是陽光網小編幫你們整理的數據庫面試題,一起來學習啦。

數據庫面試題

  數據庫面試題篇一

  1、怎么在存儲過程中使用臨時表?

  在Oracle中,臨時表分為SESSION、TRANSACTION兩種,SESSION級的臨時表數據在整個SESSION都存在,直到結束此次SESSION;而 TRANSACTION級的臨時表數據在TRANACTION結束后消失,即COMMIT/ROLLBACK或結束SESSION都會清除 TRANACTION臨時表數據。

  1、ON COMMIT DELETE ROWS 說明臨時表是事務指定,每次提交后ORACLE將截斷表(刪除全部行)

  2、ON COMMIT PRESERVE ROWS 說明臨時表是會話指定,當中斷會話時ORACLE將截斷表。

  3、臨時表(無論會話級還是事務級)中的數據都是會話隔離的,不同session之間不會共享數據。

  4、在存儲中使用事務級臨時表時,注意commit前刪除掉本事務的數據,否則可能會出現數據不斷增加的情況(原因尚未搞明白)。

  5、 兩種臨時表的語法:

  create global temporary table 臨時表名 on commit preserve|delete rows; 用preserve時就是SESSION級的臨時表,用delete就是TRANSACTION級的臨時表。

  6、特性和性能(與普通表和視圖的`比較)

  臨時表只在當前連接內有效;

  臨時表不建立索引,所以如果數據量比較大或進行多次查詢時,不推薦使用;

  數據處理比較復雜的時候時表快,反之視圖快點;

  在僅僅查詢數據的時候建議用游標: open cursor for 'sql clause';

  2、口述一下存儲過程的寫法

  基本結構+存儲名+輸出變量+ is +begin 開始+操作語句 +end 結束

  CREATE OR REPLACE PROCEDURE fun_xsreMobile

  (paR_intInterID_c number,

  paR_lngMobile_c number,

  Date_c number)

  is

  begin

  select * from (

  Select ID, CpID, MobState, Settled, SendDate, ReceCount, IsLocked, GateID, ExtData,ReceTs

  From tb_prd_ofr where InterID =paR_intInterID_c and Mobile =paR_lngMobile_c and SendDate >=Date_c

  order by ID desc)

  where rownum=1;

  end;

  3、你了解oracle表分區嗎?它有什么優缺點

  分區表:

  當表中的數據量不斷增大,查詢數據的速度就會變慢,應用程序的性能就會下降,這時就應該考慮對表進行分區。表進行分區后,邏輯上表仍然是一張完整的表,只是將表中的數據在張興東279 版權所有物理上存放到多個表空間(物理文件上),這樣查詢數據時,不至于每次都掃描整張表。

  表分區的具體作用

  Oracle的表分區功能通過改善可管理性、性能和可用性,從而為各式應用程序帶來了極大的好處。通常,分區可以使某些查詢以及維護操作的性能大大提高。此外,分區還可以極大簡化常見的管理任務,分區是構建千兆字節數據系統或超高可用性系統的關鍵工具。

  分區功能能夠將表、索引或索引組織表進一步細分為段,這些數據庫對象的段叫做分區。每個分區有自己的名稱,還可以選擇自己的存儲特性。從數據庫管理員的角度來看,一個分區后的對象具有多個段,這些段既可進行集體管理,也可單獨管理,這就使數據庫管理員在管理分區后的對象時有相當大的靈活性。但是,從應用程序的角度來看,分區后的表與非分區表完全相同,使用 SQL DML 命令訪問分區后的表時,無需任何修改。

  什么時候使用分區表:

  1、表的大小超過2GB。

  2、表中包含歷史數據,新的數據被增加都新的分區中。

  必須要建表之前就創建

  表分區有以下優點:

  1、改善查詢性能:對分區對象的查詢可以僅搜索自己關心的分區,提高檢索速度。

  2、增強可用性:如果表的某個分區出現故障,表在其他分區的數據仍然可用;

  3、維護方便:如果表的某個分區出現故障,需要修復數據,只修復該分區即可;

  4、均衡I/O:可以把不同的分區映射到磁盤以平衡I/O,改善整個系統性能。

  缺點:

  分區表相關:已經存在的表沒有方法可以直接轉化為分區表。不過 Oracle 提供了在線重定義表的功能。

  數據庫面試題篇二

  1. 存儲過程:存儲過程就是編譯好了的一些sql語句。

  01.存儲過程因為SQL語句已經預編繹過了,因此運行的速度比較快。

  02. 可保證數據的安全性和完整性。通過存儲過程可以使沒有權限的用戶在控制之下間接地存取數據庫,從而保證數據的安全。通過存儲過程可以使相關的動作在一起發生,從而可以維護數據庫的完整性。

  03.可以降低網絡的通信量。存儲過程主要是在服務器上運行,減少對客戶機的壓力。

  04:存儲過程可以接受參數、輸出參數、返回單個或多個結果集以及返回值。可以向程序返回錯誤原因 5:存儲過程可以包含程序流、邏輯以及對數據庫的查詢。同時可以實體封裝和隱藏了數據邏輯。

  2. 內聯接,外聯接區別?

  內連接是保證兩個表中所有的行都要滿足連接條件,而外連接則不然。

  在外連接中,某些不滿足條件的列也會顯示出來,也就是說,只限制其中一個表的行,而不限制另一個表的行。分左連接、右連接、全連接三種

  3. 觸發器的作用?

  觸發器是一中特殊的存儲過程,主要是通過事件來觸發而被執行的。它可以強化約束,來維護數據的完整性和一致性,可以跟蹤數據庫內的操作從而不允許未經許可的更新和變化。可以聯級運算。如,某表上的觸發器上包含對另一個表的數據操作,而該操作又會導致該表觸發器被觸發。

  4. 什么是內存泄漏?

  一般我們所說的內存泄漏指的是堆內存的泄漏。堆內存是程序從堆中為其分配的,大小任意的,使用完后要顯示釋放內存。當應用程序用關鍵字new等創建對象時,就從堆中為它分配一塊內存,使用完后程序調用free或者delete釋放該內存,否則就說該內存就不能被使用,我們就說該內存被泄漏了。

  5. 鎖:在所以的DBMS中,鎖是實現事務的關鍵,鎖可以保證事務的完整性和并發性。與現實生活中鎖一樣,它可以使某些數據的擁有者,在某段時間內不能使用某些數據或數據結構。當然鎖還分級別的。

  有一個表或者多個表的行或列的子集。對視圖的`修改不影響基本表。它使得我們獲取數據更容易,相比多表查詢。

  6. 游標:是對查詢出來的結果集作為一個單元來有效的處理。游標可以定在該單元中的特定行,從結果集的當前行檢索一行或多行。可以對結果集當前行做修改。一般不使用游標,但是需要逐條處理數據的時候,游標顯得十分重要。

  7. 說出一些數據庫優化方面的經驗?

  用PreparedStatement 一般來說比Statement 性能高:一個sql 發給服務器去執行,涉及步驟:

  語法檢查、語義分析, 編譯,緩存.

  有外鍵約束會影響插入和刪除性能,如果程序能夠保證數據的完整性,那在設計數據庫時就去掉外鍵。(比喻:就好比免檢產品,就是為了提高效率,充分相信產品的制造商)

  看mysql 幫助文檔子查詢章節的最后部分,例如,根據掃描的原理,下面的子查詢語句要比第二條關聯查詢的效率高:

  1. select e.name,e.salary where e.managerid=(select id from employee where name='zxx');

  2. select e.name,e.salary,m.name,m.salary from employees e,employees m where e.managerid = m.id and m.name='zxx';

  表中允許適當冗余,譬如,主題帖的回復數量和最后回復時間等

  將姓名和密碼單獨從用戶表中獨立出來。這可以是非常好的一對一的案例喲!

  還有索引對查詢性能的改進也是值得關注的。

  數據庫面試題篇三

  1. 說出數據連接池的工作機制是什么?

  J2EE 服務器啟動時會建立一定數量的池連接,并一直維持不少于此數目的池連接。客戶端程序需要連接時,池驅動程序會返回一個未使用的池連接并將其表記為忙。如果當前沒有空閑連接,池驅動程序就新建一定數量的連接,新建連接的數量有配置參數決定。當使用的池連接調用完成后,池驅動程序將此連接表記為空閑,其他調用就可以使用這個連接。實現方式,返回的Connection 是原始Connection 的代理,代理Connection 的close 方法不是真正關連接,而是把它代理的Connection 對象還回到連接池中。

  2. xml 有哪些解析技術?區別是什么?

  有DOM,SAX,STAX 等. DOM:處理大型文件時其性能下降的非常厲害。這個問題是由DOM 的樹結構所造成的,這種結構占用的內存較多,而且DOM 必須在解析文件之前把整個文檔裝入內存,適合對XML 的隨機訪問.SAX:不現于DOM,SAX 是事件驅動型的XML 解析方式。它順序讀取XML 文件,不需要一次全部裝載整個文件。當遇到像文件開頭,文檔結束,或者標簽開頭與標簽結束時,它會觸發一個事件,用戶通過在其回調事件中寫入處理代碼來處理XML 文件,適合對XML 的順序訪問. STAX:Streaming API for XML (StAX)

  3. 你在項目中用到了xml 技術的哪些方面?如何實現的?

  用到了數據存貯,信息配置兩方面。在做數據交換平臺時,將不能數據源的數據組裝成XML文件,然后將XML 文件壓縮打包加密后通過網絡傳送給接收者,接收解密與解壓縮后再同XML文件中還原相關信息進行處理。在做軟件配置時,利用XML 可以很方便的進行,軟件的各種配置參數都存貯在XML 文件中

  4、數據庫三范式是什么?

  第一范式(1NF):

  字段具有原子性,不可再分。所有關系型數據庫系統都滿足第一范式)數據庫表中的字段都是單一屬性的,不可再分。例如,姓名字段,其中的姓和名必須作為一個整體,無法區分哪部分是姓,哪部分是名,如果要區分出姓和名,必須設計成兩個獨立的字段。 第二范式(2NF):

  第二范式(2NF)是在第一范式(1NF)的'基礎上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。要求數據庫表中的每個實例或行必須可以被惟一地區分。通常需要為表加上一個列,以存儲各個實例的惟一標識。這個惟一屬性列被稱為主關鍵字或主鍵。第二范式(2NF)要求實體的屬性完全依賴于主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性,如果存在,那么這個屬性和主關鍵字的這一部分應該分離出來形成一個新的實體,新實體與原實體之間是一對多的關系。為實現區分通常需要為表加上一個列,以存儲各個實例的惟一標識。簡而言之,第二范式就是非主屬性非部分依賴于主關鍵字。

  第三范式(3NF):

  滿足第三范式(3NF)必須先滿足第二范式(2NF)。簡而言之,第三范式(3NF)要求一個數據庫表中不包含已在其它表中已包含的非主關鍵字信息。

  所以第三范式具有如下特征:

  1,每一列只有一個值

  2,每一行都能區分。

  3,每一個表都不包含其他表已經包含的非主關鍵字信息。

  例如,帖子表中只能出現發帖人的 id,而不能出現發帖人的 id,還同時出現發帖人姓名,否則,只要出現同一發帖人 id 的所有記錄,它們中的姓名部分都必須嚴格保持一致,這就是數據冗余。

  5、說出一些數據庫優化方面的經驗?

  1、關鍵字段建立索引。

  2、使用存儲過程,它使SQL變得更加靈活和高效。

  3、備份數據庫和清除垃圾數據。

  4、SQL語句語法的優化。

  5、清理刪除日志。

【數據庫面試題】相關文章:

數據庫常見面試題11-26

數據庫常見面試題11-26

軟件測試數據庫面試題11-25

關于經典面試題12-09

樂事面試題精選12-09

微軟面試題精選12-09

精選面試題目12-09

經典面試題及答案04-04

面試題及答案04-04