Service chaining provides network services by flexibly configuring service chains that connect virtualized network functions (VNFs) in the appropriate order so as to satisfy users' needs. Existing models can be inefficient in terms of consuming network and computation resources since the models do not consider the traffic changes due to VNFs or the models restrict routing and VNF placement. This paper proposes a service chain provisioning model that handles the traffic changes created by VNFs while determining the VNF visit order of each request, request routes, and VNF placement. The service chain provisioning problem is formulated as an integer linear programming (ILP) problem. Three methods for limiting the number of VNF visit order patterns considered in the ILP problem are introduced to shorten the computation time. In order to handle a problem that is intractable with the ILP model, we introduce a greedy algorithm and an algorithm that divides the problem into the VNF placement part and the routing part. Numerical results show that considering the traffic changes due to VNFs yields more efficient consumption of network and computation resources than the alternative of assuming that the traffic amount of each request is constant between the endpoints. The results also show that the computation time can be shortened in our examined scenarios while we obtain the objective value larger by at most 0.4% than the optimal value by limiting the number of visit order patterns considered.