Performance giữa PowerShell, cmd và Sqlcommand C#

Hiện tại mình đang viết 1 tool để update SQL server chạy 1 file script lớn tầm 3000 line trở lên.
Thấy hiện tại có vài phương án xử lý như sau:

A. Sử dụng .Net 4.0:

  1. Với phiên bản này có hỗ trợ SMO để xử lý luôn cả file này.

B. Sử dụng .Net 3.5:

  1. Tách file Script này thành các đoạn script nhỏ tương ứng với từng batch (xử lý bằng split tại ‘GO’) rồi chạy lần lượt với 1 Sqlconnection.
  2. Để cả cục chạy dựa trên:
    a. PowerShell: RunSpace
    b. Command: Process

Mình muốn hỏi sự khác biệt về performance lẫn bản chất hoạt động của mấy cách trên.
Tạm thời theo hiểu biết hiện tại như sau:

  1. Trên browser SSMS, Server sẽ nhận script và chạy lần lượt các batch
  2. SqlCommand cách B.1 sẽ tạo 1 connection tới Server (VD: connect.Open()) rồi tool cho chạy lần lượt các sciprt chọc liên tục tới Server để thực hiện. Theo PM thì dạng này cũng tương tự như batch ở phần 1 nhưng lại sẽ khiến Server dễ đơ hơn do connect liên tục để xử lý, kiểu 1 client!?.
  3. Cách B.2.a/b thì mình hoàn toàn mới chỉ biết là PowerShell là 1 bản nâng cấp của Cmd. Trong đó .Net sẽ hỗ trợ mình dùng PowerShell để chạy file bash thực hiện file script lớn này. Nhưng bản chất của nó giống với mục 1 hay mục 2 thì mình chưa có tài liệu nào để tham khảo.

Các cao nhân nào đã qua xin chỉ giáo mình với.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?