Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

SSIS gagal menyimpan paket dan mem-boot ulang Visual Studio

Saya sarankan membaca data dalam potongan:

Alih-alih memuat seluruh tabel, cobalah untuk membagi data menjadi beberapa bagian dan mengimpornya ke SQL Server. Dari beberapa saat, saya menjawab jawaban serupa terkait dengan SQLite, saya akan mencoba mereproduksinya agar sesuai dengan sintaks Oracle:

Panduan langkah demi langkah

Dalam contoh ini setiap potongan berisi 10.000 baris.

  1. Deklarasikan 2 Variabel bertipe Int32 (@[User::RowCount] dan @[User::IncrementValue] )
  2. Tambahkan Execute SQL Task yang mengeksekusi select Count(*) perintah dan simpan Kumpulan Hasil ke dalam variabel @[User::RowCount]

  1. Tambahkan For Loop dengan preferensi berikut:

  1. Di dalam wadah for loop tambahkan Data flow task
  2. Di dalam tugas aliran data, tambahkan ODBC Source dan OLEDB Destination
  3. Di Sumber ODBC pilih SQL Command pilihan dan tulis SELECT * FROM TABLE query *(untuk mengambil metadata saja`
  4. Petakan kolom antara sumber dan tujuan
  5. Kembali ke Control flow dan klik Data flow task dan tekan F4 untuk melihat jendela properti
  6. Di jendela properti, buka ekspresi dan Tetapkan ekspresi berikut ke [ODBC Source].[SQLCommand] properti:(untuk info lebih lanjut lihat Bagaimana cara melewatkan variabel SSIS dalam ekspresi ODBC SQLCommand?)

    "SELECT * FROM MYTABLE ORDER BY ID_COLUMN
    OFFSET " + (DT_WSTR,50)@[User::IncrementValue] + "FETCH NEXT 10000 ROWS ONLY;"
    

Di mana MYTABLE adalah nama tabel sumber, dan IDCOLUMN adalah kunci utama atau kolom identitas Anda.

Tampilan Layar Alur Kontrol

Referensi

  • Sumber ODBC - SQL Server
  • Bagaimana cara meneruskan variabel SSIS dalam ekspresi ODBC SQLCommand?
  • BAGAIMANA CARA MENGGUNAKAN SUMBER ODBC SSIS DAN PERBEDAAN ANTARA OLE DB DAN ODBC?
  • Bagaimana cara membatasi jumlah baris yang dikembalikan oleh kueri Oracle setelah memesan?
  • Mendapatkan n hingga n baris teratas dari db2

Pembaruan 1 - Kemungkinan solusi lain

Saat mencari masalah serupa, saya menemukan beberapa solusi tambahan yang dapat Anda coba:

(1) Ubah memori maksimal SQL Server

  • SSIS:Manajer Buffer Gagal Panggilan Alokasi Memori

    sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    sp_configure 'max server memory', 4096;
    GO
    RECONFIGURE;
    GO
    

(2) Aktifkan pipa Bernama

  • [Tetap] Manajer buffer mendeteksi bahwa sistem kehabisan memori virtual, tetapi tidak dapat menukar buffer apa pun

    1. Buka Panel Kontrol –> Alat Administratif -> Manajemen Komputer
    2. Pada Protokol untuk Instance SQL -> Setel Named Pipes =Enabled
    3. Mulai ulang Layanan instance SQL
    4. Setelah itu coba impor data dan itu akan mengambil data dalam potongan-potongan sekarang alih-alih mengambil sekaligus. Semoga berhasil untuk kalian dan menghemat waktu Anda.

(3) Jika menggunakan SQL Server 2008 instal hotfix

  • Proses runtime SSIS 2008 lumpuh saat Anda menjalankan paket SSIS 2008 dalam kondisi memori rendah

Pembaruan 2 - Memahami kesalahan

Di tautan MSDN berikut, penyebab kesalahan dijelaskan sebagai berikut:

Memori virtual adalah superset dari memori fisik. Proses di Windows biasanya tidak menentukan mana yang akan digunakan, karena itu akan (sangat) menghambat bagaimana Windows dapat melakukan banyak tugas. SSIS mengalokasikan memori virtual. Jika Windows mampu, semua alokasi ini disimpan di memori fisik, di mana aksesnya lebih cepat. Namun, jika SSIS meminta lebih banyak memori daripada yang tersedia secara fisik, maka memori virtual tersebut tumpah ke disk, membuat paket tersebut beroperasi dengan urutan yang lebih lambat. Dan dalam kasus terburuk, jika tidak ada cukup memori virtual dalam sistem, maka paket akan gagal.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:cara mengurangi dua tanggal dan mendapatkan menit dari hasilnya

  2. Tidak ada lagi data untuk dibaca dari kesalahan soket

  3. Jika pernyataan dalam klausa Where

  4. Cara Mendefinisikan Kunci Utama Peningkatan Otomatis di Oracle

  5. Cara Membuat Laporan PDF Menggunakan PL/SQL