Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL процес XML производителност:Вмъкване в колони в таблица

Първото, което бих опитал, е да посоча text() възел, когато използвате типа данни XML, за да попречите на SQL Server да извършва дълбоко търсене на текстови елементи.

INSERT INTO SUPPLIER
   (IDCONO
   ,IDSUNO
   ,IDSUTY)
SELECT
   T.C.value('(IDCONO/text())[1]', 'VARCHAR(50)') as IDCONO,
   T.C.value('(IDSUNO/text())[1]', 'VARCHAR(50)') as IDSUNO,
   T.C.value('(IDSUTY/text())[1]', 'VARCHAR(50)') as IDSUTY
FROM @data.nodes('/Suppliers/Supplier') T(C)

Ако това не е достатъчно добро, бих опитал вместо това OPENXML.

DECLARE @idoc INT
EXEC sp_xml_preparedocument @idoc OUT, @data

INSERT INTO SUPPLIER
   (IDCONO
   ,IDSUNO
   ,IDSUTY)
SELECT IDCONO, IDSUNO, IDSUTY
FROM OPENXML(@idoc, '/Suppliers/Supplier', 2) WITH
        (IDCONO VARCHAR(50),
         IDSUNO VARCHAR(50),
         IDSUTY VARCHAR(50))


EXEC sp_xml_removedocument @idoc



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Бавна производителност на SQL при достъп до най-новите записи

  2. Търсенето на пълен текст не работи, ако е включена спираща дума, въпреки че списъкът със стоп думи е празен

  3. Най-добри отговори на 5 горящи въпроса относно функцията COALESCE в SQL Server

  4. Създайте UDF, обвързан със схема в SQL Server

  5. Забавление с BULK INSERT SQL SERVER - тип несъответствие или невалиден знак за посочената кодова страница