Oracle資料類型引起的效能問題(已經解決)!

來源:互聯網
上載者:User

為避免SQL-注入,所有的update,insert,delete,select全部使用帶參數的形式編寫

Update TableName Set FiledName=:Fd1 where Id=:Id

ID Oracle類型是 Varchar2對應DbType.String

問題來了,由於類型映射不匹配,導致在執行SQL時Oracle會自動轉換類型,這樣直接導致無法使用到索引(全部全表掃描),所以update,delete時效率特別差

後修改代碼

ID Oracle類型是 Varchar2對應DbType.AnsiString

問題解決了,可以用使用到索引。

Oracle 資料類型

要綁定為參數的 DbType 枚舉

要綁定為參數的 OracleType 枚舉

備忘

BFILE

 

BFile

Oracle 只允許將 BFILE 綁定為 BFILE 參數。 如果您嘗試綁定一個非 BFILE 值(如 byte[] 或 OracleBinary),適用於 Oracle 的 .NET 資料提供者並不會自動為您構造這樣的值。

BLOB

 

Blob

Oracle 只允許將 BLOB 綁定為 BLOB 參數。 如果您嘗試綁定一個非 BLOB 值(如 byte[] 或 OracleBinary),適用於 Oracle 的 .NET 資料提供者並不會自動為您構造這樣的值。

CHAR

AnsiStringFixedLength

Char

 

CLOB

 

Clob

Oracle 只允許將 CLOB 綁定為 CLOB 參數。 如果您嘗試綁定一個非 CLOB 值(如 System.String 或 OracleString),適用於 Oracle 的 .NET 資料提供者並不會自動為您構造這樣的值。

DATE

DateTime

DateTime

 

FLOAT

Single、Double、Decimal

Float、Double、Number

Size 確定 System.Data.DBType 和 OracleType。

INTEGER

SByte、Int16、Int32、Int64、Decimal

SByte、Int16、Int32、Number

Size 確定 System.Data.DBType 和 OracleType。

INTERVAL YEAR TO MONTH

Int32

IntervalYearToMonth

只有在同時使用 Oracle 9i 用戶端和伺服器軟體時,OracleType 才可用。

INTERVAL DAY TO SECOND

Object

IntervalDayToSecond

只有在同時使用 Oracle 9i 用戶端和伺服器軟體時,OracleType 才可用。

LONG

AnsiString

LongVarChar

 

LONG RAW

Binary

LongRaw

 

NCHAR

StringFixedLength

NChar

 

NCLOB

 

NClob

Oracle 只允許將 NCLOB 綁定為 NCLOB 參數。 如果您嘗試綁定一個非 NCLOB 值(如System.String 或 OracleString),適用於 Oracle 的 NET 資料提供者並不會自動為您構造這樣的值。

NUMBER

VarNumeric

Number

 

NVARCHAR2

String

NVarChar

 

RAW

Binary

Raw

 

REF CURSOR

 

Cursor

有關更多資訊,請參見Oracle REF CURSOR。

ROWID

AnsiString

Rowid

 

TIMESTAMP

DateTime

Timestamp

只有在同時使用 Oracle 9i 用戶端和伺服器軟體時,OracleType 才可用。

TIMESTAMP WITH LOCAL TIME ZONE

DateTime

TimestampLocal

只有在同時使用 Oracle 9i 用戶端和伺服器軟體時,OracleType 才可用。

TIMESTAMP WITH TIME ZONE

DateTime

TimestampWithTz

只有在同時使用 Oracle 9i 用戶端和伺服器軟體時,OracleType 才可用。

UNSIGNED INTEGER

Byte、UInt16、UInt32、UInt64、Decimal

Byte、UInt16、Uint32、Number

Size 確定 System.Data.DBType 和 OracleType。

VARCHAR2

AnsiString

VarChar

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.