Avatar
1
monkey Enlightened
monkey Enlightened
Tại sao có công ty dùng procedure có công ty lại không?
Xin chào! mình có 1 câu hỏi về stored procedure cho DB như này: Phần này được dùng nhiều trong các hệ thống liên quan tới oracle, sql server, nhưng app của công ty cũ của mình thì được dùng rất ít. Đó là do app của công ty đó nhỏ phải không nhỉ?
  • Answer
procedure
Remain: 5
2 Answers
Avatar
monkey Enlightened
monkey Enlightened
Không phải chị ạ, nó là do thế hệ lập trình viên. Những người thuộc thế hệ cũ, 7x hoặc đầu 8x chẳng hạn thì ngày xưa các ngôn ngữ lập trình và thư viện lập trình nó chưa phát triển như bây giờ nên họ sử dụng store produce để tận dụng sức mạnh của DB. Tuy nhiên nhược điểm của store produce là thiếu đi các công cụ để debug, dẫn đến việc dễ bị lỗi, bị sai, và khi bị lỗi thì cũng rất khó phát hiện hoặc lấy log.

Nên ngày nay khi các ngôn ngữ lập trình và thư viện phát triển mạnh thì việc xử lý mọi thứ ở tầng ứng dụng sẽ đơn giản hơn, an toàn hơn, và đỡ bị bỏ sót trong quá trình vận hành.

Nói tóm lại ở đây là do tư tưởng lập trình và sự khác biệt ở thế hệ của lập trình viên chị ạ

  • 0
  • Reply
Avatar
toilahtc Enlightened
toilahtc Enlightened
Em muốn thêm 1 khía cạnh nữa ạ

Em thấy có những ý kiến cho rằng store produce có hiệu suất tốt hơn, có thể giúp cho các câu truy vấn trở nên nhanh hơn khi sử dụng SQL ở tầng ứng dụng (Cho dù đã dùng các kỹ thuật index, partition hay đã sử dụng cả việc select theo page).

Ý kiến này đúng không ạ và nếu có thì anh có thể tạo 1 ví dụ giải quyết cho việc select dữ liệu lớn qua store produce không ạ?

Em cảm ơn

  • 0
  • Reply
Select dữ liệu thì có lẽ hiệu suất sẽ đạt như nhau em ạ.. Nhìn chung việc đóng gọi nhiều câu lệnh vào 1 store procedure cũng sẽ tiết kiệm được thời gian gửi qua lại các câu lệnh giữ DB client và DBMS. Tuy nhiên lúc này, áp lực xử lý và lưu trữ dữ liệu tạm thời lại đặt lên DBMS, cũng giống như application server, tài nguyên RAM, CPU, Threads của DBMS là hữu hạn, nên nó cũng sẽ làm ảnh hưởng đến việc phân bổ tài nguyên cho từng truy vấn, nên xét trên tổng thể thì vẫn cần chạy stresstest đo đạc thì mới kết luận được em ạ.  –  tvd12 1667547460000