diff --git a/lib/active_admin/csv_builder.rb b/lib/active_admin/csv_builder.rb
index <HASH>..<HASH> 100644
--- a/lib/active_admin/csv_builder.rb
+++ b/lib/active_admin/csv_builder.rb
@@ -47,9 +47,13 @@ module ActiveAdmin
 
       receiver << CSV.generate_line(columns.map{ |c| encode c.name, options }, options)
 
-      view_context.send(:collection).find_each do |resource|
-        resource = view_context.send :apply_decorator, resource
-        receiver << CSV.generate_line(build_row(resource, columns, options), options)
+      collection  = view_context.send(:collection)
+      total_pages = collection.public_send(Kaminari.config.page_method_name, 1).per(batch_size).total_pages
+      (1..total_pages).each do |page_no|
+        collection.public_send(Kaminari.config.page_method_name, page_no).per(batch_size).each do |resource|
+          resource = view_context.send :apply_decorator, resource
+          receiver << CSV.generate_line(build_row(resource, columns, options), options)
+        end
       end
     end
 
@@ -107,5 +111,9 @@ module ActiveAdmin
     def column_transitive_options
       @column_transitive_options ||= @options.slice(*COLUMN_TRANSITIVE_OPTIONS)
     end
+
+    def batch_size
+      1000
+    end
   end
 end
added ability to use sort order in CSV