
# INSERT...SELECT操作调优
#### 操作场景
在以下几种情况下，执行INSERT...SELECT操作可以进行一定的调优操作。
- 查询的数据是大量的小文件。
- 查询的数据是较多的大文件。
- 在beeline/thriftserver模式下使用非spark用户操作。
 
#### 操作步骤
可对INSERT...SELECT操作做如下的调优操作。
- 如果建的是Hive表，将存储类型设为Parquet，从而减少执行INSERT...SELECT语句的时间。
- 建议使用spark-sql或者在beeline/thriftserver模式下使用spark用户来执行INSERT...SELECT操作，避免执行更改文件owner的操作，从而减少执行INSERT...SELECT语句的时间。
  ![](https://support.huaweicloud.com/devg-mrs/public_sys-resources/note_3.0-zh-cn.png)
  在beeline/thriftserver模式下，executor的用户跟driver是一致的，driver是thriftserver服务的一部分，是由spark用户启动的，因此其用户也是spark用户，且当前无法实现在运行时将beeline端的用户透传到executor，因此使用非spark用户时需要对文件进行更改owner为beeline端的用户，即实际用户。
  
 
