SQL 지원 NCache

실제 복잡한 시나리오에서는 애플리케이션이 기본 키를 통해 검색하는 대신 특정 속성을 기반으로 데이터를 가져와야 하는 경우가 많습니다. SQL을 사용하여 데이터를 쿼리하면 런타임 시 사용자 지정 논리를 기반으로 데이터베이스에서 데이터를 더 쉽게 검색할 수 있습니다.

NCache 주어진 기준에 따라 캐시를 검색하고 필요한 결과 집합을 반환할 수 있는 SQL 쿼리 메커니즘을 지원합니다. NCache 네이티브 SQL 구조화 언어와 매우 유사한 쿼리 언어를 사용하므로 인덱싱된 캐시 데이터를 쉽게 쿼리할 수 있습니다.

 

쿼리 방법

NCache ADO.NET 인터페이스와 유사한 쿼리 인터페이스를 사용하여 캐시에서 데이터를 검색하거나 삭제하는 다양한 쿼리 방법을 지원합니다. 다음은 에서 지원되는 가장 중요한 쿼리 방법 중 일부입니다. NCache.

  • ExecuteReader 데이터를 검색하고 키-값 쌍을 반환하는 데 사용됩니다. ExecuteReader 메서드를 사용하는 동안 키만 반환할지 아니면 키와 관련 데이터(전체 또는 청크 단위)를 모두 반환할지 여부를 지정할 수 있습니다.
  • string query = "SELECT * FROM FQN.Product WHERE ProductID > ?";
    var queryCommand = new QueryCommand(query);
    queryCommand.Parameters.Add("ProductID",50000);
    ICacheReader reader = cache.SearchService.ExecuteReader(queryCommand, false, 0);
    if (reader.FieldCount > 0)
    {
        while (reader.Read())
        {
            string result = reader.GetValue<string>(0);
        }
    }
    String query = "SELECT * FROM FQN.Product WHERE ProductID > ?";
    QueryCommand queryCommand = new QueryCommand(query);
    HashMap<String, Object> parameters = new HashMap<>();
    parameters.put("ProductID", 50000);
    queryCommand.getParameters().putAll(parameters);
    CacheReader cacheReader = cache.getSearchService().executeReader(queryCommand);
    if (cacheReader.getFieldCount() > 0) {
        while (cacheReader.read()) {
            cacheReader.getString(0);
    }
  • 비쿼리 실행 SQL 문을 사용하여 항목을 삭제할 때 사용됩니다. 결과적으로 삭제된 행 수를 반환합니다.
  • 스칼라 실행 일반적으로 쿼리가 단일 값을 반환해야 하는 계산 및 집계 작업에 사용됩니다.
 

SQL 프로젝션

NCache SQL 쿼리에 대해 투영할 열을 지정할 수 있습니다. 아래에는 에서 지원되는 가장 일반적으로 사용되는 기본 프로젝션이 언급되어 있습니다. NCache.

  • * : 쿼리에 사용될 때 구성 시 정의된 지정된 개체의 모든 색인 속성 값을 반환합니다.
  • $VALUE$: 쿼리에 사용되면 인덱싱된 속성과 인덱싱되지 않은 속성을 포함하는 전체 개체가 포함된 키를 반환합니다.
  • 집계 기능: 이러한 함수에는 SUM(), COUNT(), MIN/MAX() 등과 같은 함수가 포함됩니다. 제공된 다른 SQL 프로젝션을 조합하여 집계 함수를 사용할 수 있습니다.
  • SELECT COUNT(*) FROM FQN.Product WHERE UnitsInStock > ?

인용하다 개체에 대한 SQL 검색

 

SQL 기타 연산자

이러한 연산자는 데이터 처리 및 조작을 위해 SQL 데이터베이스 전체에서 사용되고 재사용됩니다. NCache 원하는 결과를 효율적으로 얻을 수 있는 다양한 SQL 연산자를 지원합니다. 이러한 기능은 다음과 같습니다.

  • 그룹비: 주어진 기준에 해당하는 모든 키를 그룹화하여 값을 반환합니다.
  • 주문: 정렬된 형식으로 값을 반환합니다.
  • 날짜 시간: 특정 날짜나 시간과 관련된 캐시를 검색합니다.
  • string query = "SELECT OrderID FROM FQN.Order WHERE OrderDate = ?";
    var queryCommand = new QueryCommand(query);
    DateTime orderDate = new DateTime(2022, 01, 01);
    queryCommand.Parameters.Add("OrderDate", orderDate);
    ICacheReader reader = cache.SearchService.ExecuteReader(queryCommand);
    if (reader.FieldCount > 0)
    {
        while (reader.Read())
        {
            int orderID = reader.GetValue<int>("OrderID");
            Console.WriteLine($"Order: {orderID} was placed on 1st January, 2022.");
        }
    }
    else
    {
        Console.WriteLine($"No orders were placed on 1st January 2022.");
    }
    
    String query = "SELECT OrderID FROM FQN.Order WHERE OrderDate = ?";
    QueryCommand queryCommand = new QueryCommand(query);
    
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date orderDate;
    orderDate = sdf.parse("2022-01-01");
    HashMap<String, Object> parameters = new HashMap<>();
    parameters.put("OrderDate", orderDate);
    queryCommand.getParameters().putAll(parameters);
    
    CacheReader cacheReader = cache.getSearchService().executeReader(queryCommand);
    if (cacheReader.getFieldCount() > 0) {
        while (cacheReader.read()) {
    
            int orderID = cacheReader.getInt(cacheReader.getOrdinal("OrderID"));
            System.out.println("Order: " + orderID + " was placed on 1st January, 2022.");
        }
    } else {
        System.out.println("No orders were placed on 1st January 2022.");
    }
 

쿼리의 SQL 연산자

SQL 연산자는 논리 및 비교 연산을 수행하기 위해 WHERE 절에 예약된 키워드입니다. NCache 사용자 정의 조건에 따라 데이터를 쿼리할 수 있도록 다음 SQL 연산자 지원을 제공합니다.

  • IN : 이 작업은 제공된 모든 속성에 대한 캐시를 검색하는 데 도움이 됩니다. 마찬가지로 절에 제공된 속성 이외의 속성을 검색하는 NOT IN 연산자가 있습니다.
  • SELECT ProductName, UnitsAvailable From FQN.Product WHERE Category IN ('Beverages', 'Confections')
  • 처럼: 이 작업은 열에서 특정 패턴을 검색합니다. LIKE 연산자는 두 개의 와일드카드를 지원합니다.
    • * : 문자열에서 XNUMX개 이상의 문자를 대체합니다.
    • ? : 문자열의 단일 문자를 대체합니다.
    • 마찬가지로, 당신은 좋아하지 않는 연산자.

다음에 무엇을할지?

검토 NCache 특징
다운로드 NCache
맞춤형 라이브 데모 요청
© 저작권 Alachisoft 2002 - . 판권 소유. NCache 는 Diyatech Corp.의 등록상표입니다.