1. 程式人生 > >oracle索引 & 快速生成大量測試資料

oracle索引 & 快速生成大量測試資料

1.建立索引

create index <index_name> on <table_name>(<colnum_name>) [tablespace <tablespace_name>]


2.刪除索引

drop index <index_name>

3.重置索引

alter index <index_name> rebuild

4.索引特點


第一,通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。 


第二,可以大大加快資料的檢索速度,這也是建立索引的最主要的原因。 


第三,可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義。 


第四,在使用分組和排序子句進行資料檢索時,同樣可以顯著減少查詢中分組和排序的時間。 


第五,通過使用索引,可以在查詢的過程中,使用優化隱藏器,提高系統的效能。 


5. 索引不足


第一,建立索引和維護索引要耗費時間,這種時間隨著資料量的增加而增加。 

第二,索引需要佔物理空間,除了資料表佔資料空間之外,每一個索引還要佔一定的物理空間,如果要建立聚簇索引,那麼需要的空間就會更大。 

第三,當對錶中的資料進行增加、刪除和修改的時候,索引也要動態的維護,這樣就降低了資料的維護速度。

6.索引測試

快速生成2000000條資料:

create table index_test_rz1135 as
       select rownum as id,
              to_char(sysdate + rownum/24/3600, 'yyyy-mm-dd hh24:mi:ss') as itime,
              trunc(dbms_random.value(1,100000)) as random_id,
              dbms_random.string('x', 20) txt
        from dual
        connect by level <= 2000000;

查詢表內容如下:

select * from index_test_rz1135;


查詢資料數量:

select count(*) from index_test_rz1135;


查詢random_id為10的所有資料:

select * from index_test_rz1135 where random_id=10;

0.094 seconds

建立索引:

create index index_test on index_test_rz1135(random_id);

查詢random_id為1000的所有資料:

0.016 seconds

多次測試,記錄結果如下:


可以看出,新增索引後顯著提高了查詢速率。

相關推薦

oracle索引 & 快速生成大量測試資料

1.建立索引 create index <index_name> on <table_name>(<colnum_name>) [tablespace <tablespace_name>] 2.刪除索引 drop index

Oracle快速生成大量測試資料

最近有個小模組,是在災備機之間拷貝備份資料,同時把相關的資料表也拷貝到目標系統上。 這裡涉及到一個問題:Oracle表空間達到上限之後怎麼處理? 一般來說,將表空間設定為自增,不限制最大容量可以滿足大部分需求。但是,即便是表空間不設定上限,資料檔案的大小也是會有最大值的,

Oracle生成大量測試資料的方法

Oracle生成一百萬測試資料的方法如下: 方法一:建立一個表,並同時新增1000000條資料,程式碼: create table TestTable as    select rownum as id,                  to_char(sy

使用 SQL 生成大量測試資料

無論您是在用原型證明某一概念,還是開發一個全新的應用程式,或者只是學習 SQL,您都需要在您的應用程式上執行測試資料。為了有效地測試應用程式的效能,您必須擁有足夠的測試資料,以便暴露潛在的效能問題。只要可以得到,用實際資料來進行測試總是更可取一些。如果沒有可用的實際資料,那麼

一條SQL快速生成大量測試資料

Oracle幾個小技巧: 1、利用Oracle特有的“connect by”樹形連線語法生成測試記錄,“level <= 10”表示要生成10記錄; 2、利用rownum虛擬列生成遞增的整數資料; 3、利用sysdate函式加一些簡單運算來生成日期資料,本例中是每條記錄的時間加1秒; 4、利用dbms_

MySQL快速生成本地測試數據

cde function using n) abcde 行存儲 roc prim etime 利用數據的存儲過程生成測試數據: 我們可以通過數據庫的的 INSERT 語句直接在存儲過程中向普通數據表中添加數據,但是 當我們添加到百萬數據後,往普通表插入測試數據的性能就會

隨機生成萬分測試資料

DROP TABLE IF EXISTS `vote_record_memory`; CREATE TABLE `vote_record_memory` (     `id` int(10) unsigned NOT NULL AUTO_INCREMENT,   &

sql生成隨機測試資料

利用sql語句產生隨機測試資料 詳細程式碼如下 create database test; use test; drop table if exists `card` ; CREATE TABLE `card` ( `card_id` bigint(20) NOT NULL

Oracle儲存過程生成大量不重複的隨機數

存放隨機數的表結構:create table COUPON_CODE( ID NUMBER(22),--主鍵 CODE VARCHAR2(10),--隨機數 USED VARCHAR2(2)--是否使用標識)需求說明:生成1億條隨機數存放到code欄位,欄位id為主

.NET使用Bogus生成大量隨機資料

.NET如何生成大量隨機資料 在演示Demo、資料庫脫敏、效能測試中,有時需要生成大量隨機資料。Bogus就是.NET中優秀的高效能、合理、支援多語言的隨機資料生成庫。 Bogus的Github連結:https://github.com/bchavez/Bogus,圖示如下: 安裝Bogus 目前Bogu

Oracle中如何用一條SQL快速生成10萬條測試資料

SQL> select rownum as id,  2     to_char(sysdate + rownum / 24 / 3600, 'yyyy-mm-dd hh24:mi:ss') as inc_datetime,  3     trunc(dbms_random.value(0, 100))

Oracle中如何用一條SQL快速生成10萬條測試資料(轉)

做資料庫開發或管理的人經常要建立大量的測試資料,動不動就需要上萬條,如果一條一條的錄入,那會浪費大量的時間,本文介紹了Oracle中如何通過一條SQL快速生成大量的測試資料的方法。產生測試資料的SQL如下:SQL> select rownum as id, 2

[Oracle]快速插入大量(100w)資料

背景:無論在開發除錯或者軟體測試中,測試資料的準備是除錯/測試執行前重要和必要的一個環節,因此以下幾種方式可以快速插入大量資料: 第一種方法: declare    -- Local variables here    m integer;  begin    -- Test statements here

MySQL 8.0.11 快速生成百萬甚至千萬測試資料

背景需求: 隨機生成千萬資料用於測試和驗證 1.利用現有的生產資料。 統計現有生產環境的資料,若有千萬級別資料的表則可以直接利用: SELECT table_schema,table_name,table_rows FROM information_schema.tab

如何一條SQL快速生成100萬條測試資料

SQL> select rownum as id,  2                 to_char(sysdate + rownum / 24 / 3600, 'yyyy-mm-dd hh24:mi:ss') as inc_datetime,  3                 trunc(db

react native 索引列表、展示大量資料索引列表、磁吸索引列表、快速載入大量資料的列表

近期,在完成一個含有索引列表功能的專案。效果如圖所示: 首先,我用的是react native 所提供的 ListView  這個元件(由於這個元件已經過期,而且此列表為分組列表,所以建議大家使用react native 官網所提供的  SectionList  元件,

資料庫壓力測試--MySQL資料庫快速插入大量資料

一、前言 應本次資料庫壓力測試的要求,測試資料記錄至少為千萬級,所以,問題來了,如何快速插入大量資料. 二、解決方法一 第一種解決方法是在MySQL終端中實現的,具體方法如下. a.開啟MySQl資料庫; mysql -u root -p

oracle一句sql生成10w行測試資料

-- 'u', 'U' - 返回全是大寫的字串 -- 'l', 'L' - 返回全是小寫的字串 -- 'a', 'A' - 返回大小寫結合的字串 -- 'x', 'X' - 返回全是大寫和數字的字串 -- 'p', 'P' - 返回鍵盤上出現字元的隨機組合 create

生成大量測試資料的三種方法,1寫sql,2工具plsql,3LoadRunner

效能測試場景之一: [1]03 臨時表裡有20W記錄,傳送ESB 說明:結算後臺對完賬後,在對賬彙總確認選單中點“確認”按鈕,系統會將已清算的資料資訊插入資金庫的臨時表pac_biz_account_histmp中,然後逐步esb傳送給物流訂單系統進行分潤處理。 一 通過工

快速生成測試資料指令碼

create TABLE Test_Table as select rownum id, floor(dbms_random.value(0,3)) sex, dbms_random.string('A',6) name, 111311198305100988 + floor(dbms_r